Php 如何让mod rewrite访问正确的目录?

Php 如何让mod rewrite访问正确的目录?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我试图使用mod rewrite来消除像{root}/index.php?action=about&page=faq这样的URL。我希望{root}/about/faq重定向到php url。我的.htaccess文件看起来像 DirectoryIndex index.php RewriteEngine On RewriteRule ^(index|about|calendar|news|contact)$ index.php?action=$1 [L] RewriteRule ^(index|

我试图使用mod rewrite来消除像{root}/index.php?action=about&page=faq这样的URL。我希望{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在about/images文件夹中查找图像,而不是在根目录下的images文件夹中。然而,PHP脚本说工作目录仍然是根目录。如何使页面认为它们位于根目录中?谢谢

    RewriteRule ^(index|about|calendar|news|contact)/(.*)/$ /index.php?action=$1&page=$2
将导致/about/faq/重写到index.php?action=about&page=faq

/日历/月份/将导致index.php?action=calendar&page=month

此外,除非您想重写imagesfiles,否则我将添加:

    RewriteCond %{REQUEST_URI} !(\.gif|\.jpg|\.png)$ [NC]
这将停止重写图像请求