我的htaccess有500错误

时间:2018-04-05 13:34:03

标签: php .htaccess url

我有一个网站,我想写漂亮的网址。首先,我有一个代码可以删除.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/listing?url=orthopaedic-surgeon/western-cape/cape-town/sunningdale/preyen-naidu

我想要的是什么:

http://bafana-dev.co.za/orthopaedic-surgeon/western-cape/cape-town/sunningdale/preyen-naidu

2 个答案:

答案 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吗?看看重定向失败的那一点。