【问题标题】:RewriteRule to redirect to php file not workingRewriteRule 重定向到 php 文件不起作用
【发布时间】:2014-08-17 17:58:09
【问题描述】:

我只想要一个简单的重定向来清理网站上的网址。 例如 我希望 ajhtestserver.com/registration/ 重定向到 ajhtestserver.com/registration.php 这应该很容易,我已经在其他网站上成功使用了 .htaccess 重写,但由于某种原因,它今天对我不起作用。

RewriteEngine On # Turn on the rewriting engine

RewriteRule ^registration[/]$ registration.php [NC,L] # Handle requests for "registration"

我确信我错过了一些简单的东西,但我基本上只是复制了我在其他网站上对我有用的东西,所以我很困惑为什么它在这里拒绝为我工作(给我@987654324 @ 错误)。只是那些日子之一:(

感谢任何帮助。

谢谢, 亚当

【问题讨论】:

  • 验证您的.htaccess 是否启用,方法是在您的.htaccess 上放置相同的垃圾(随机)文本,看看它是否会产生500(内部服务器)错误?跨度>
  • 是的,500 内部服务器错误
  • 这个 .htaccess 的位置是什么?和registration.php是同一级别吗?还有更多规则吗?最后是/registration/ 目录吗?
  • .htaccess 和 php 文件一样位于根文件夹中。目前这是唯一的规则。 /registration/ 不是目录。看到……很奇怪吧?
  • 试试这条规则:RewriteRule ^foo /bar [L,R],然后在浏览器中打开/foo URL,看看它是否变成/bar

标签: php html .htaccess mod-rewrite rewrite


【解决方案1】:

如果你使用 apache,首先你应该在 http.conf 或...中启用 rewrite_mode ...\

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^registration/(.*)$ registration.php/$1 [L]  

检查 .htaccess 语法或重写模式。

【讨论】:

  • 已启用。使用您的代码仍然会出现相同的错误。
  • 正确的我不知道你会遵守这条规则......!!!我从我的一个项目中复制了这条规则,这段代码对我有用!!!
  • 所以经过一些测试,如果源和目标是同一个词,它似乎不喜欢它。如果我尝试将 adam/ 之类的内容重定向到 registration.php 而不是registration/,则效果很好
【解决方案2】:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)[/]$ $1.php [L]

【讨论】:

  • 看到应该可以工作......但事实并非如此。同样的错误:(如果我使用类似 RewriteRule ^registration.*$ /registration.php [R=301,L] 我会收到一个无限重定向错误,这是应该发生的,所以我现在正在读取文件。
【解决方案3】:

好吧,当重定向源词和目标文件名是同一个词时,它似乎不喜欢它,但这有效...... RewriteRule ^([a-zA-Z\ ]+)[/]?$ $1.php [NC,L]

这实际上是一个更好的解决方案,因为它不需要为每个页面单独设置规则。

虽然我从来没有弄清楚为什么它不喜欢原来的方式。

【讨论】:

  • 仅供参考,您不需要[/]?/? 上的括号就足够了。也不明白为什么你在你的角色类中允许一个空格(反斜杠+空格)。假设您不需要空格,在更惯用的正则表达式中也是如此:^(?i)([a-z]+)/?$ $1.php [NC,L]
  • 允许空间是因为我从我的另一个需要允许空间的站点复制代码:) 感谢简化代码。
猜你喜欢
  • 2014-05-31
  • 1970-01-01
  • 2012-09-24
  • 2013-03-14
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多