我有一个网站,我试图使用mod_rewrite来改变网址:
/directory/filename.php
至directory/filename/
/directory/filename.php?id=7
至directory/filename/7/
/directory/filename.php?id=7&file_id=1
至directory/filename/7/1/
我无法计算出用于这些页面的正则表达式。这是整个.htaccess文件:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^(.*)/?$ /directory/$1 [L] #Rewrite a page without $_GET variables
RewriteRule ^([^/]+)/([0-9]+)/?$ /directory/$1?id=$2 [L] #Rewrite a page with 1 $_GET variables
RewriteRule ^([^/]+)/([0-9]+)/([0-9]+)/?$ /directory/$1?id=$2&file_id=$3 [L] #Rewrite a page with 2 $_GET variables
答案 0 :(得分:2)
如果.htaccess
位于directory
文件夹中,那么directory/
路径前缀将被剥离,您无需在重写规则中烦恼。
您可以使用以下内容:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^([^/.]+)/?$ $1.php [L] # rewrite without query string parameters
RewriteRule ^([^/.]+)/(\d+)/?$ $1.php?id=$2 [L] # one parameter
RewriteRule ^([^/.]+)/(\d+)/(\d+)/?$ $1.php?id=$2&file_id=$3 [L] # two parameters