2016-05-26 8 views
0

これは私が問題を抱えている書き換えルールです。URL書き換え奇妙なエラー

# Pretty URLs 
RewriteRule ^article/(.+)$ /article?query=$1 

# Resolve .php file for extensionless php urls 
RewriteRule ^([/A-Za-z0-9-]+)$ /$1.php 

これは私が私が私が私が削除した場合rewriterulesが実際に

http://www.example.com/article.php?query=392-demolition.php 

にリクエストを送信していることが分かったデバッグする場合

http://www.example.com/article/392-demolition 

を構築しようとしているURLです2番目のルールのスラッシュを追加するか、最初のルールに[R]を追加すると、すべて正常に動作します。なぜ誰かがここで間違いを説明することができますか?

おかげ

答えて

0

は、あなたが使用することができます。

# skip all files and directories from rewrite rules below 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# Pretty URLs 
RewriteRule ^article/(.+)$ /article?query=$1 [NC,L] 

# Resolve .php file for extensionless php urls (with test) 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 
RewriteRule ^(.+)/?$ /$1.php [L] 
0

使用簡単な再書き込み:

RewriteRule ^article/([^/]*)$ /article.php?query=$1 [L]