Mod Rewrite:如何重写URL将所有内容传递给index.php

时间:2017-03-24 10:21:13

标签: php apache .htaccess mod-rewrite url-rewriting

我启用了mod_rewrite并使用phpinfo()进行了检查。

我用

放置了一个.htaccess文件
RewriteEngine on

RewriteRule ^(.*)$ index.php?/$1 [L]

和apache根目录下的index.php文件(/ var / www / html /)。

工作网址:

http://192.168.56.101/index.php

http://192.168.56.101/index.php/edrgderg

失败(404)网址:

http://192.168.56.101/sgghsshgfhfgj

Mod_rewrite应该将其形成为http://192.168.56.101/index.php/sgghsshgfhfgj,但它不会。

我想将每个请求重定向到index.php

SOLUTION:

我必须编辑我的apache配置:

sudo nano /etc/apache2/sites-enabled/000-default.conf

我补充说:

<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

在这里消磨:https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-ubuntu-14-04

1 个答案:

答案 0 :(得分:0)

从重写规则中排除现有文件/目录,以避免循环规则:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?/$0 [L,QSA]