我正在尝试使用 apaches mod_rewrite 模块将目录 /docs 中的所有 URI 重写为 /docs/index.php。
URI 不作为目录结构存在,当您将 URI 重写为退出的内容时,我认为没有必要这样做。
我收到错误消息:
“在此服务器上找不到请求的 URL /docs/view/my_doc。”
这些是我的重写规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^docs/([a-z]+)/([A-Za-z0-9_-]+)/?$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/docs/index.php?action=$1&target=$2 [QSA,L]
我正在 httpd.conf 中进行配置。另外,我正在使用多 v-host 设置。
我的问题是什么,我该如何解决?
我在 CentOS 6.2 上使用 Apache/httpd
更新
包括我的虚拟主机:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.smicloud.org
ServerAlias *.smicloud.org
VirtualDocumentRoot /var/www/html/www.smicloud.org
ExpiresActive On
ExpiresDefault "access plus 14 days"
# insert logging config, anything else you need..
#Define FileEtag so it doesnt use node
FileETag MTime Size
<Directory /var/www/html/>
Order Allow,Deny
Allow from all
# Get rid of this if you need to allow htaccess files:
AllowOverride None
</Directory>
RewriteEngine On
RewriteRule ^docs/([a-z]+)/([A-Za-z0-9_-]+)/$ /docs/index.php?action=$1&target=$2 [QSA,L]
</VirtualHost>