【问题标题】:Htaccess clean urls code not working as I wantHtaccess clean urls 代码无法正常工作
【发布时间】:2011-06-27 05:11:31
【问题描述】:

这就是我的 htaccess clean url 代码的样子:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond  %{QUERY_STRING} !^myvar=0
RewriteCond %{REQUEST_URI} !\..*$
RewriteRule ^([^/]*)/?$ /$1.php?myvar=0 [QSA,L]

此 htaccess 代码允许根目录上的文件使用 .php、尾部斜杠或任何内容。所以 blah.com/blah.php 有效 blah.com/blah 有效 blah.com/blah/ 有效

但是,如果我的根目录中有一个文件夹,比如名称为“news”,则根目录中的“news”文件无法使用干净的 url。所以 blah.com/news.php 有效,但 blah.com/news 和 blah.com/news/ 都无效。

由于某种原因,文件夹中的文件必须具有文件扩展名 (.php),因此 blah.com/news/obama.php 可以工作 blah.com/news/obama 和 blah.com/news/obama/ 都可以不工作。

.htaccess 代码有什么问题,我该如何纠正?

tl;dr 是否有一个 htaccess 代码可以使它如此 .php 工作,尾部斜杠工作,并且没有尾部斜杠工作?我对 htaccess 一无所知。

另外:我昨天发布了同样的问题,但没有得到回复。不知道为什么。如果有什么令人困惑的地方,我会尝试清除它。谢谢!

【问题讨论】:

  • 昨天发布了同样的问题?有罪。
  • 是的,我承认。我没有得到回应。我还有什么其他选择 =/
  • 祈祷、哭泣、尖叫或谷歌搜索。其中一个应该根据 SO 的规则删除 AFAIK
  • 您检查过您的网络服务器日志文件吗?可能没有找到 news.php.php 的问题

标签: .htaccess mod-rewrite clean-urls


【解决方案1】:

也许

RewriteBase /
RewriteRule ^(.*)(?=\.php/?)?$ /$1.php?myvar=0 [QSA,L]

可以提供帮助。在这种情况下,您的日志文件非常好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2017-02-28
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多