MultiViewsを有効にして、Clean-Urlsを許可しようとしています。
私が持っているすべてのページは、ルートフォルダ自体にあります。
私は次のことを達成しようとしています:
(current-status -> what I am trying to achieve)
1. foo.com/services.php -> foo.com/services
2. foo.com/services == foo.com/services/
3. foo.com/services.php/second-level/ == foo.com/services/second-level
これservices
は フォルダではありません$_SERVER['PATH_INFO']
。分解して第2レベルのパスデータを取得します。
MultiViews
私はすでに最初のものを達成しましたが、ファイルを使用し.htaccess
てリライトを書き込んで有効にすると失敗します。
Options +Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
(これは、リクエストをservices / second-level.phpに変更するため、明らかに失敗します)。で複数の書き換えを記述し.htaccess
、条件付きでリダイレクトできることはわかっています。
しかし、奇妙な事実は、ライブ環境(共有ホスティング)では、ルートフォルダーにファイルがなくても機能していることです。.htaccess
共有ホスティングなので、設定ファイルが読めません。
apache.conf
上記を実現するために(またはで)どの構成を変更する必要があるかについてのアイデアは*.conf
ありますか?
重要な場合は、を使用していApache/2.2.22
ますが、この問題は更新後に発生し始めました。