我正在尝试重写一个这样的网址: http://www.foo.com/bar/baz
到
的index.php Q = $ 1和; d =巴兹
其中bar不是固定值,但是baz是。
RewriteRule ^(.*)\/baz$ index.php?q=$1&d=baz [L,QSA]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
我上面的有点有效,但遗憾的是打破了网站中的所有内容(css / javascript),但奇怪的是所有页面都有效:/
这是一个drupal安装,(所以第二行需要保留)。
更新
实际上这可能有所帮助,我忘了包含
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
**RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]**
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
它似乎正在正确地进行重写,唯一的问题是它现在忽略了其他条件语句,即它仍然试图重写存在的文件(即css,js),以避免它们。
网站很好没有我的线(带星星的那个),但有了它,变量和页面工作,但像css等静态文件也被重写....需要停止!
提前致谢。
沙迪
答案 0 :(得分:1)
条件仅适用于紧随其后的第一条规则。所以尝试复制条件行。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
答案 1 :(得分:0)
RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
这是最终奏效的。它只需要重新安排规则......