如何获得mod-rewrite以访问正确的目录?

时间:2014-05-07 14:40:26

标签: php apache .htaccess mod-rewrite

我尝试使用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脚本说工作目录仍然是根目录。如何让页面认为它们位于根目录中?谢谢!

1 个答案:

答案 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]

这将停止重写图像请求。