我试图从我的WAMP服务器THIS上的网址中删除index.php
,但由于某些原因我的实际托管服务器上没有。
我刚刚在我当前的Linux Ubuntu Server上创建了一个子域,
在/var/www/tools.example.com/public_html
下
我检查了mod_rewrite
是否已使用我上传到目录的.php文件启用了这个:
<?php
phpinfo();
和mod_rewrite位于“已加载模块”下。 所以不用担心
我在etc / apache2 / sites-available / tools.example.com.conf中创建的.conf文件如下所示:<VirtualHost *:80>
ServerName tools.example.com
ServerAdmin walid@example.com
ErrorLog /var/www/tools.example.com/logs/error.log
CustomLog /var/www/tools.example.com/logs/access.log combined
DocumentRoot /var/www/tools.example.com/public_html
<Directory /var/www/tools.example.com.conf/public_html/>
Options Indexes FollowSymLinks MultiViews
# changed from None to FileInfo
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
其中AllowOverride All
因此启用了使用带有.htaccess的mod_rewrite。
我不知道为什么这仍然不起作用。知道为什么吗?
主目录中的.htaccess文件的内容:
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
编辑#1:
我已经完成了这篇文章中的所有前9个解决方案:CodeIgniter removing index.php from url
答案 0 :(得分:1)
您的路径在.conf文件中对于directory指令不正确。列出的文档根目录应与Directory指令相同。所以我不认为它正在拿起AllowOverride All
指令。
更改此
<Directory /var/www/tools.example.com.conf/public_html/>
到此
<Directory /var/www/tools.example.com/public_html/>