【问题标题】:.htaccess code giving error 500.htaccess 代码给出错误 500
【发布时间】:2014-03-07 23:53:11
【问题描述】:

我有这段代码可以将 domain.com/Birthdays/birthdays.php?n=Something 转换为 domain.com/Birthdays/Something 并删除其他页面的 .php 和 .html:

RewriteEngine on
RewriteRule ^Birthday/(\w+)$ /Birthdays/birthdays.php?n=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

当我添加这个时问题来了:

RewriteEngine on
RewriteRule ^Birthdays/(.*)$ [L]
RewriteRule ^Birthday/(\w+)$ /Birthdays/birthdays.php?n=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

它给了我一个错误 (500) 但如果我将 (.*) 更改为 (\w+) 它可以工作。但我不想那样。

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    你可以使用:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^Birthday/(\w*)$ /Birthdays/birthdays.php?n=$1 [L,QSA]
    

    由于循环错误,您将获得 500,因为您的规则模式匹配起始和重写的 URI。

    【讨论】:

      猜你喜欢
      • 2014-09-25
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多