Htaccess将变量重写为漂亮的文件夹结构

时间:2014-02-16 00:17:34

标签: .htaccess mod-rewrite

我有一个网站和htaccess位于webroot文件夹/ new /。

我有以下htaccess

RewriteEngine On
RewriteRule ^visit-([a-z\-]+)/([a-z\-]+)$ index.php?var1=$1&var2=$2  [L]
RewriteRule ^visit-([a-z\-]+)$ index.php?var1=$1   [L]

对于像

这样的网址
domain.com/new/visit-spain

它正常工作 - 即它加载index.php并将$ 1传递给var1变量

对于像

这样的网址
domain.com/new/visit-spain/text-file

它无法正常工作。 Index.php没有加载。

非常感谢帮助。我花了一整天时间试图让它发挥作用。

1 个答案:

答案 0 :(得分:1)

放手一搏:

RewriteEngine On
RewriteRule ^visit-(?:([^/]+)|)(?:/([^/]+)|)$ index.php?var1=$1&var2=$2 [L]

基本上这将照顾你的两种情况(它们都适用于你的情况):

RewriteEngine On
RewriteRule ^visit-([^/]+)/([^/]+)/?$ index.php?var1=$1&var2=$2 [L]
RewriteRule ^visit-([^/]+)/?$ index.php?var1=$1 [L]

([^/]+) visit-之后的任何内容都不是/而第二种情况相同,但第一个和第二个参数会相同。

此外,您可能希望在RewriteEngine On之后添加以下内容:

RewriteBase /new/