と.PHP拡張を無視:ハウツーですか?バニティURL&Iは完全に働いて、次の.htaccessを持っているの.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*)$ http://www.mysite.com/mypage.php?u=$1 [NC]
これは私がこのようなURLを記述することができます:
http://www.mysite.com/peter => http://www.mysite.com/mypage.php?u=peter
しかし、どのような場合私は、既存のファイルの.php拡張子を書くのを避けるための妥当な規則を持っていますか?私は私のCURRのhtaccessファイル(しかしdoesntの仕事)にこれを追加しようとした
http://www.mysite.com/contact (contact.php exists on file)
:つまり
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
を、私は虚栄心のURLを持ち、同じ.htaccessファイルで拡張子.phpを無視したいと思います。
SOLVED!ウルリッヒPalhaマリオ(へ おかげで発注し、LAST [L]フラグについて知らなかった!
RewriteEngine on
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.mysite.com/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.mysite.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*)$ http://www.mysite.com/mypage.php?u=$1 [NC]
連絡先のルールは.htaccessの一番上に表示されますか?そうでない場合は、RewriteEngineを下に移動して、 –
に移動します。http://stackoverflow.com/q/4026021/911182 – Herbert
これをチェックしてください:http://stackoverflow.com/a/8371815/1044340 – Nonym