使用htaccess删除特定文件名

时间:2018-03-12 07:14:14

标签: php apache .htaccess

我在.htaccess编写规则方面经验不足。

我的网站网址就像

http://exampletest.com/detail.php?i=my-url

我想将该网址重写为

http://exampletest.com/my-url

到目前为止我尝试了什么:

RewriteEngine on 
RewriteBase / 
RewriteCond %{THE_REQUEST} /detail\.php\?i=([^\s&][A-Za-z0-9-]+) [NC] 
RewriteRule ^ detail %1? [R=302,L]

这使我能够使用以下方式访问我的网站:

http://exampletest.com/detail/my-url

但我也想从网址中省略detail

2 个答案:

答案 0 :(得分:3)

您应该在内部重定向,因此您的代码应如下所示:

RewriteEngine on 
RewriteBase / 
RewriteCond %{THE_REQUEST} /detail\.php\?i=([^\s&][A-Za-z0-9-]+) [NC] 
RewriteRule ^  %1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$    /detail.php?i=$1 [L]

答案 1 :(得分:1)

试试这个:

RewriteEngine on 
RewriteBase / 
RewriteCond %{THE_REQUEST} /detail\.php\?i=([^\s&][A-Za-z0-9-]+) [NC] 
RewriteRule ^ %1? [R=302,L]