我在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 ??
答案 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]
如果您收到任何错误消息,请告诉我们 - 这会有所帮助。