您好,我目前将此作为我的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/(assets|modules|plugins)/ - [NC,L,QSA]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -s
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d [OR]
RewriteRule (.*) - [NC,L,QSA,S=3]
RewriteRule ^/(.*)/(.*)$ /$1?type=$2 [NC,QSA]
RewriteRule ^/(.*)$ /index.php?page=$1 [NC,L,QSA]
</IfModule>
这是从apache vhost配置转移到.htaccess但我得到的是404.
例如:我希望此页面http://stripsync.com/index.php?page=venue看起来像http://stripsync.com/venue
我做错了什么?非常感谢所有帮助!!
答案 0 :(得分:0)
将其更改为此内容,删除正向前斜杠,因为您已将其移至.htaccess
(匹配中不包括它们),并删除了%{DOCUMENT_ROOT}
,因为%{REQUEST_FILENAME}
已经拥有它在这种情况下。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(assets|modules|plugins)/ - [NC,L]
RewriteCond %{ENV:REDIRECT_REWRITTEN} =1 [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(.*)/(.*)$ /$1?type=$2 [QSA,L,E=REWRITTEN:1]
RewriteRule ^(.*)$ /index.php?page=$1 [QSA,L,E=REWRITTEN:1]
</IfModule>
我删除了未使用的标记并捕获。