子文件夹中的mod_rewrite不起作用

时间:2012-06-25 19:16:31

标签: php mod-rewrite

我目前正在处理mod_rewrite并遇到了一个绊脚石,我希望有人能够帮助

我的网站结构如此

https://www.abc.com/region1/
https://www.abc.com/region2/
https://www.abc.com/region3/

在每个文件夹中都有两个我称之为example1.php和example2.php的文件,两者都是动态的

关于example1.php,可能是example1.php?var1 = 1
关于example2.php,一种可能性可能是example2.php?var1 = 1& var2 = 1

我一直在尝试使用以下内容,但它抛出服务器500错误

RewriteEngine On
RewriteRule ^example1alias/ example1alias/([^/\.]+)/?$ example1.php?var1=$1 [L]
RewriteRule ^example1alias/ example1alias/?$ example1.php [L]
RewriteRule ^example2alias/ example2alias/([^/\.]+)/([^/\.]+)/?$ example2.php?var1=$1&var2=$2 [L]

包含此代码的.htaccess位于子文件夹本身,如果我正确理解mod_rewrite,^告诉规则从活动路径运行

有人能指出我做错了吗

一如既往,我们非常感谢任何建议

问候
百里

1 个答案:

答案 0 :(得分:1)

大多数情况下,HTTP 500(用于htaccess)是针对htaccess文件中的语法错误。

对于重写规则,我认为语法是:RewriteRule Pattern Substitution [flags] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule)

您似乎有一个规则有多个模式,也许您可​​以尝试将它们分成两个不同的规则。

  • RewriteRule ^ example2alias / example2.php [L]
  • RewriteRule ^ example2alias /([^/.]+)/([^/.]+)/?$ example2.php?var1 = $ 1& var2 = $ 2 [L,QSA]

还在您的htaccess文件中添加“RewriteEngine On”和“Options FollowSymLinks”