查询字符串到路径

时间:2017-06-22 18:32:38

标签: .htaccess mod-rewrite

您好,我目前将此作为我的.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

我做错了什么?非常感谢所有帮助!!

1 个答案:

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

我删除了未使用的标记并捕获。