因此,从共享主机移动到VPS后,我的mod_rewrite停止工作。 我在apache中打开了mod_rewrite,但仍然没有。
我的所有项目文件都存储在/var/www/html/project
和我的htaccess:
RewriteEngine On
RewriteBase /html/project/
RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=302,L,NE]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)/{2,}[?\s] [NC]
RewriteRule ^ /%1/ [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} system|application
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
但是mod_rewrite不想工作。我正在使用digitalocean VPS。有任何想法吗? Btw VPS安装了apache细节:14.04上的Ubuntu LAMP,我正在为我的项目使用codeigniter
答案 0 :(得分:1)
经过一段时间后,我发现我还要更改/etc/apache2/apache2.conf
以及其他文件。我启用了多视图http://prntscr.com/6qt89p
答案 1 :(得分:0)
你是否在没有RewriteBase的情况下尝试.htaccess。将文件/ etc / apache2 / sites-enabled / 000-default
中的 AllowOverride FileInfo 更改为 AllowOverride allOptions -Indexes +MultiViews +FollowSymLinks
RewriteEngine On
#RewriteBase /html/project/
RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=302,L,NE]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)/{2,}[?\s] [NC]
RewriteRule ^ /%1/ [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} system|application
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]