【问题标题】:redirect issue using htaccess [closed]使用htaccess重定向问题[关闭]
【发布时间】:2012-06-17 11:39:17
【问题描述】:

我想使用 .htaccess abc.com/test.php 重定向到 abc.com/test。但它只会执行/显示 test.php 的内容。

我应该怎么做?有什么建议吗?

【问题讨论】:

  • 你的意思不是反过来吗?就像有人在他们的浏览器中输入 abc.com/test 你想向他们展示 test.php 的内容一样吗?
  • 您能否提供一个您当前尝试的示例,以便我们了解您实际尝试做什么?我认为@RobForrest 是对的,但如果我们看到代码,我们可以确定。
  • 是的。我想要同样的东西。如果用户直接写abc.com/test 则可以。它应该只显示test.php 文件内容。

标签: php .htaccess


【解决方案1】:

试试看

RewriteRule ^test$ test.php [L]

[更新]

一个完整的重定向

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.php !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule [^/]$ %{REQUEST_URI}.php [QSA,L] 

【讨论】:

  • 我会添加 QSA 标志以及大卫在他的回答中所做的那样,因此也会附加潜在的查询字符串。
  • abc.com/test 将显示 abc.com/test.php 的内容,但 abc.com/test.php 应重定向到 abc.com/test
  • @user985361 将我的答案更新为更好的代码
  • @sena 是的。它工作正常。谢谢。
  • @sena 它适用于所有文件.. 如果我想只为特定文件实现它怎么办.. 比如 test.php
【解决方案2】:

这是使用重写规则完成的,而不是重定向。像这样的:

RewriteEngine On
RewriteRule ^/test.php$ /test [L,QSA]

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多