【问题标题】:.htaccess gives 500 Internal Server Error.htaccess 给出 500 内部服务器错误
【发布时间】:2016-08-09 12:03:04
【问题描述】:

请帮助我解决这个问题。我只是想

  1. 从我的文件中删除 .php 扩展名,这做得很好 代码。
  2. 将复杂的 php url 转换为 seo 友好的 url。

我的 htaccess 文件是

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]
RewriteEngine on
RewriteRule ^search_contents/([0-9]+) search_contents.php?txt_search_contents=$1 [NC,L]

【问题讨论】:

  • “将复杂的 php url 转换为 seo 友好的 url”不是必需的,请重新表述问题并提供示例。对于 500 内部服务器错误,还要提供更多信息、日志、文件系统结构和 URL,至少...
  • 只想启用像 website.com/search_contents.php?txt_search_contents=132 这样的干净网址到 website.com/search_contents/132
  • 那些<br/>真的在htaccess文件中吗?
  • 您的 search_contents.php 文件在哪里?它在您的目录的根目录中吗?
  • @WilliamIsted Isted 不。为了清楚起见,我只是在这里添加了这一点,但并不知道这是不需要的。我的错。

标签: php apache .htaccess mod-rewrite


【解决方案1】:

试试这个

RewriteRule ^search_contents/([0-9]+)$ search_contents.php?txt_search_contents=$1 [NC,L]

【讨论】:

  • 我已经在 namecheap 和 arvixe 服务器上尝试过,但结果相同。在错误日志中也没有发现任何内容。
【解决方案2】:

如果您的 search_contents.php 位于项目目录的根目录,请尝试以下操作:-

RewriteEngine on
RewriteBase /
RewriteRule ^search_contents/(.*)$ search_contents.php?txt_search_contents=$1 [L,R=301]

如果它在任何文件夹中,请尝试以下操作:-

RewriteEngine on
RewriteBase /
RewriteRule ^search_contents/(.*)$ myfolder/search_contents.php?txt_search_contents=$1 [L,R=301]

1) 我添加了RewriteBase

2) ([0-9]+)(.*),允许所有参数而不是仅数字 如果您需要,您可以更改为数字。

也许对你有帮助。

【讨论】:

  • 感谢您的好心回复好友,但它没有用 :-( search_contents.php 在根目录中,但它包含来自子目录的另一个 php 文件,该文件接受获取变量并从数据库中检索数据。
  • @MImranKhan 请您删除文件包含的代码,并检查其是否有效?
  • 所以我们才知道真正的问题是什么?
  • 您能否再试一次以更新答案?
  • 是的,它仍然显示相同的错误兄弟。“服务器遇到内部错误或配置错误,无法完成您的请求。”
【解决方案3】:

您可以在这里测试您的规则:http://martinmelin.se/rewrite-rule-tester/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2017-04-05
    • 1970-01-01
    相关资源
    最近更新 更多