.htaccess URl重写目录结构

时间:2014-04-10 01:46:19

标签: php apache .htaccess mod-rewrite

我在.htaccess文件中遇到小问题,

RewriteEngine On

RewriteRule    ^([A-Za-z0-9-]+)/?$   index.php?urltype=$1    [NC,L]    
RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$    index.php?urltype=$1&url=$2    [NC,L]  
RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$    index.php?urltype=$1&url=$2&pages=$3    [NC,L]  

Options -Indexes 
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

<Files .htaccess>
order allow,deny
deny from all
</Files>

# MIME types for Video
AddType video/mp4 mp4 m4v f4v f4p
AddType video/ogg ogv
AddType video/webm webm
AddType video/x-flv flv

这是.htaccess文件。现在我想制作一个网址 像这样:domainname.com/seach/?name=Sameer&lastname=khan等..,我的其他规则也可以工作

修改

这次“domainname.com/seach/,domainname.com/home/,domainname.com/contactus/”这个网址正在运行。现在我想,当我提交表单时,我想使用$ _get方法。这就是为什么我需要发送变量,如:domainname.com/contactus/?name=Sameer&lastname=khan这个网址我的规则不起作用他们只是给我$ _get或$ _request only contactus

1 个答案:

答案 0 :(得分:0)

您需要在规则中使用QSA标志:

RewriteRule ^([A-Z0-9-]+)/?$ index.php?urltype=$1 [QSA,NC,L]
RewriteRule ^([A-Z0-9-]+)/([A-Z0-9-]+)/?$ index.php?urltype=$1&url=$2 [NC,L,QSA]
RewriteRule ^([A-Z0-9-]+)/([A-Z0-9-]+)/([A-Z0-9-]+)?$ index.php?urltype=$1&url=$2&pages=$3 [NC,L,QSA]