我尝试使用mod-rewrite来消除像{root} /index.php?action=about&page=faq这样的网址。我希望{root} / about / faq重定向到php url。我的.htaccess文件看起来像
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^(index|about|calendar|news|contact)$ index.php?action=$1 [L]
RewriteRule ^(index|about)/(.+)$ index.php?action=$1&page=$2 [L]
当重定向到index.php?action = $ 1时,这很好用。但是,当使用第二个规则时,它不能完全起作用。 html内容显示正常,但缺少样式表和图像。该页面似乎认为它位于子目录中。因此{root} / about / faq会在/ images中找到图像,而不是在根目录下的images文件夹中查找图像。但是PHP脚本说工作目录仍然是根目录。如何让页面认为它们位于根目录中?谢谢!
答案 0 :(得分:0)
RewriteRule ^(index|about|calendar|news|contact)/(.*)/$ /index.php?action=$1&page=$2
会导致/ about / faq /重写为index.php吗?action = about& page = faq
/ calendar / month /会导致index.php?action = calendar& page = month
除非您想重写图像文件,否则我会添加:
RewriteCond %{REQUEST_URI} !(\.gif|\.jpg|\.png)$ [NC]
这将停止重写图像请求。