抱歉我的英语不好......
我有最基本的 CodeIgniter 设置,但无法使其工作...如果我访问该网址 http://domain.com/index.php?controllerX/method它工作正常。
现在我希望能够访问 http://domain.com/method
我在routes.php上将“controllerX”配置为默认控制器并尝试使用以下.htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /index.php/$1 [L]
我尝试了多个.htaccess,每次服务器都返回 403 错误。即使我的 .htaccess 仅包含第一行“RewriteEngine on”,它也会显示 403 错误。我尝试将每个文件夹设置为 chmod 777 或 755 进行测试,但这没有任何改变。
有没有办法查看哪些资源给出了 403 错误?还是我在其他地方犯了错误?
好吧,我在某处读到我需要在 htaccess 上使用“Options +FollowSymLink”...服务器向我显示 500 个错误:(
编辑 好的,现在可以使用以下 htaccess:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /index.php/$1 [L]
将 .htaccess 文件更改为:
除了我们在 .htaccess 文件中所做的更改之外,我们还必须验证/更改以下设置:
Apache 读取位于 /var/www/html 目录下的 .htaccess 文件。 您可以通过编辑 httpd.conf 文件来做到这一点:
sudo nano /etc/httpd/conf/httpd.conf
找到该部分并将AllowOverride None更改为
AllowOverride All
<Directory /var/www/html>
AllowOverride All
</Directory>
Save and exit.
现在重新启动 Apache 以使更改生效:
sudo systemctl 重新启动 httpd
休息,这对我有用
我想你的问题也得到了解答这里
RewriteEngine On
RewriteBase /
# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# Enforce www
# If you have subdomains, you can add them to
# the list using the "|" (OR) regex operator
RewriteCond %{HTTP_HOST} !^(www|subdomain) [NC]
RewriteRule ^(.*)$ http://www.plugb.com/$1 [L,R=301]
RewriteBase /
RewriteCond %{HTTP_HOST} !=""
RewriteRule ^index.php(/.*)?$ http://%{HTTP_HOST}$1 [R=301]
# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]