【问题标题】:.htaccess rewrite conflict issue.htaccess 重写冲突问题
【发布时间】:2014-08-17 23:25:16
【问题描述】:

这个 .htaccess 文件有问题

RewriteEngine On
RewriteBase /subdomain

#Make sure it's an actual file
RewriteCond %{REQUEST_FILENAME} -f [OR]
#Make sure its a directory
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^ - [L]

#Rewrite the request to index.php
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?mode=$1&s=$2 [L,QSA]

#Rewrite the request to index.php
RewriteRule ^([^/]+)/?$ index.php?mode=$1 [L,QSA]

这个.htaccess 帮助我以http://domain.com/subdomain/page/ 访问这个url http://domain.com/subdomain/index.php?mode=page

现在我想以http://domain.com/subdomain/checkout/ 的身份访问此网址http://domain.com/subdomain/checkout.php 但这不能在线工作,但是当我在本地主机上测试时一切正常。

我可以对 .htaccess 进行任何更改来解决这个问题吗?任何帮助是极大的赞赏。提前谢谢你。

【问题讨论】:

  • 如果您没有禁用MultiViews 选项,那么当您转到/subdomain/checkout 时它应该可以工作(自动解析为checkout.php
  • 我在 .htaccess 中发布了所有代码我应该如何验证MultiViews 状态?
  • 如果它不在您的 htaccess 中,它可能在 apache 配置中,但似乎问题来自其他地方。我认为/subdomain/checkout/ 被重写为index.php?mode=checkout(最后一条规则)
  • 正是,这就是为什么我要问我是否应该在我的 .htaccess 文件中添加一些东西

标签: php apache .htaccess mod-rewrite redirect


【解决方案1】:

幸运的是,我解决了这个问题:)

在我试图在 .htaccess 中为 checkout.php 指定一些特殊的东西之前

RewriteRule checkout/ checkout.php

事实上,这是解决方案,但我没有把它放在“我的问题”中之前的代码之后,而是直接放在这一行之后

RewriteBase /subdomain

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多