.htaccess重写规则无法在cpanel

时间:2016-09-06 07:13:42

标签: php .htaccess mod-rewrite

我在localhost上创建了一个网站, 在htdocs里面,我添加了一个文件夹&sitttame'这包含所有文件,包括.htaccess。这在我的本地工作正常,但是当我在服务器上传它时,它无效。

.htaccess代码

Options +FollowSymlinks
RewriteEngine on

RewriteBase /sitename/

# redirect to .php-less link if requested directly
#RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
#RewriteRule ^ /sitename/%1 [R,L,NC]

ErrorDocument 404 /sitename/404

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/sitename/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

什么应该替换“网站名称”?在cpanel上传时 的public_html ??

1 个答案:

答案 0 :(得分:1)

如果您将脚本保存在子文件夹中(例如:/public_html/sitename/以下,则适用于您)。但是,如果您将脚本直接放在/public_html/(例如:/public_html/index.php)中,而不是将RewriteBase /sitename/替换为RewriteBase /

Options +FollowSymlinks

<IfModule mod_rewrite.c>
    # let the PHP knows that the mod_rewrite module is ENABLED.
    SetEnv HTTP_MOD_REWRITE On
    RewriteEngine on
        RewriteBase /sitename/      
</IfModule>

#prevent direct access to certain file types
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak|psd|DS_Store|project)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

ErrorDocument 404 /sitename/404.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/sitename/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

如果您收到任何错误消息,请告诉我们 - 这会有所帮助。