我有一个网站和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没有加载。
非常感谢帮助。我花了一整天时间试图让它发挥作用。
答案 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/