2

我一直在尝试设置 .htaccess 来创建干净的 PHP URL。我的目标是在文件夹 CL 中实现干净的 URL。

.ht 访问:

# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php

<IfModule mod_rewrite.c>
    # This is the initialization
    # For security reasons, Option followsymlinks cannot be overridden.
    #Options +FollowSymLinks
    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    RewriteBase /

    # /CL/var1/var2/var3
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1&var2=$2&var3=$3 [L,QSA]

    # /CL/var1/var2
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1&var2=$2 [L,QSA]

    # /CL/var1
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1 [L,QSA]
</IfModule>

但是,由于某种原因,当您进入文件夹 CL 时,我收到 500 内部服务器错误。我过去使用过类似的 .htaccess 配置,但现在由于某种原因它无法正常工作。

有任何想法吗?

4

1 回答 1

0

“我过去使用过类似的 .htaccess 配置,但现在由于某种原因无法正常工作。”

好的,所以规则集有效。我刚刚在我的一个测试虚拟机上进行了测试,所以它仍然可以工作,所以你的问题不是这个.htaccess文件中的 mod_rewrite 功能。那么它可能在哪里呢?横向思考。500 状态通常是一个 mod_rewrite 循环。.htaccess/CL 中有文件吗?这可能会创建一个 perdir 无限循环。

不幸的是,DS 建议尝试从共享托管服务提供商处获得有关 error_log 内容的答案以获得 100 美元的共享服务的建议是不可以的。士气:在您的 PC 上设置一个测试虚拟机来调试这些东西,您可以在此处获得对日志的 root 访问权限。

于 2012-01-11T23:29:39.893 回答