htaccess宇宙的地狱

时间:2018-05-24 23:17:27

标签: .htaccess

欢迎来到我的厄运。

到目前为止,我的问题有些神秘。 在我的网站上完美运行的规则,但不在我的本地主机上。规则相当简单,但我无法找到解决血腥噩梦的伎俩。

我有一个像这样的网址http://frostpath.lx/access/articles 它是WAMP本地主机上的虚拟主机,具有此conf。

<VirtualHost frostpath.lx>
  ServerName frostpath.lx
  ServerAlias frostpath.lx
  DocumentRoot "E:/Projects/frostpath"
  <Directory "E:/Projects/frostpath/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

到目前为止这么好看似乎有效,网站正在运行,css加载,脚本,一切都很好。 mod_rewrite打开,我检查并重新检查在线找到的不同脚本。

但野兽并不满足。 .htaccess(我认为问题来自那里,但谁知道 - 我可能已经关注错误的事情几个小时)

RewriteEngine on
RewriteBase /
RewriteRule ^(access)$ access.php [NC,L]
RewriteRule ^(access)\/([^\.]+)$ access.php?$2 [NC,L]
RewriteRule ^(access)\/([^\.]+)\/([^\.]+)$ access.php?$2&start=$3 [NC,L]

基本上,

http://frostpath.lx/access/articles这只是重定向到access.php并且不会显示文章。

http://frostpath.lx/access?articles这个完美无缺。

但我不想要&#34;?&#34;我想要一个&#34; /&#34;。遵守规则.htaccess!

我尝试了东西,但到目前为止没有运气

/access.php?$2
/access?$2
/?access.php&$2

以上所有有和无斜线的东西。老实说,我在这里问,因为我的想法已经不多了。

此外,规则正在我的index.php上,但不在access.php上,这是另一个控制器。 Mindblown。

那么我的规则到底出了什么问题呢?

请帮助我,绝望正在慢慢伤害我的键盘。

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine on
RewriteBase /
RewriteRule ^access$ access.php [NC,L]
RewriteRule ^access/([^.]+)/([^.]+)$ access.php?$1&start=$2 [NC,L]
RewriteRule ^access/([^.]+)$ access.php?$1 [NC,L]

之前的文章规则。

或者改变你的第二条规则:

RewriteRule ^access/([^./]+)$ access.php?$1 [NC,L]

因为现在它也适用于第三种情况,因为/包含在第一组