如何使用.htaccess仅使用GET参数重写一个页面的规则?

时间:2016-07-24 17:03:17

标签: php html .htaccess mod-rewrite

我是网址重写的新手。

到目前为止我做了什么:

使用多个在线资源我已成功通过以下规则将我的网址loclahost/mysite/attach.php?q=1重写为localhost/mysite/attach/1

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /mysite/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^attach/([^/]+)$ attach.php?q=$1 [NC,L]

问题: 我的问题是使用此规则我的所有网址都被覆盖了。如果我单击导航菜单上的任何链接,它会在页面前附加attach/。此外,CSS和图像链接也被覆盖,如localhost/mysite/attach/style/css/style.css,而它应该是localhost/mysite/style/css/style.css因此,浏览器也不会对页面进行样式设置。

1 个答案:

答案 0 :(得分:0)

检查此规则的最后3行,您将全部设定。

RewriteCond %{QUERY_STRING} (^|&)q=1($|&)
RewriteRule ^mysite/attach\.php$ /mysite/attach/1?&%{QUERY_STRING}