我有一个网站,我想写漂亮的网址。首先,我有一个代码可以删除.php
扩展名,该代码可以正常使用。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
上面的代码工作正常,但是当我添加另一行来删除查询字符串时,我得到500错误。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^-]*)$ /listing?url=$1 [L]
RewriteRule ^(.*)$ $1.php
请帮忙
这是网址:
我想要的是什么:
http://bafana-dev.co.za/orthopaedic-surgeon/western-cape/cape-town/sunningdale/preyen-naidu
答案 0 :(得分:2)
您可以使用此
RewriteEngine On
# if a file without .php extension is requested, rewrite it to .php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule (.*)$ $1.php [L]
# rewrite everything else (except /listing) to /listing?url=
RewriteCond %{REQUEST_FILENAME} !listing
RewriteRule ^([^.]+)$ /listing?url=$1 [L]
500错误可能是由于无条件规则RewriteRule ^([^-]*)$ /listing?url=$1 [L]
。规则在循环模式下将/listing
重定向到自身。我在上面添加了一个条件来排除目标路径。
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^([^-]*)$ /listing?url=$1 [L]
只需像我一样切换订单,即使你得到一个白页,你可以发布白页的当前URL吗?看看重定向失败的那一点。