求大神!ubuntu下apache重写不起作用

帖子列表 发布于 2013/05/07 20:13
阅读 844
收藏 0

目的:去掉uri中的index.php,照样访问网站各控制器和方法。即原本http://truelove/index.php/register/,要http://truelove/register/。以前centos上可以搞定,现在却总是弄不好。下面是我的机器环境信息:

Ubuntu 12.04.2 LTS
PHP 5.3.10-1ubuntu3.6 with Suhosin-Patch (cli) (built: Mar 11 2013 14:34:31)

/etc/hosts

127.0.0.1       localhost
127.0.0.2       truelove
127.0.1.1       hp1000 

/etc/apache2/conf.d/vhost.conf

<VirtualHost 127.0.0.2>
    ServerAdmin test@gmail.com
    ServerName truelove
    DocumentRoot /var/www/truelove/public
    ErrorLog /var/www/truelove.error.log
    CustomLog /var/www/truelove.access.log combined

    <Directory "/var/www/truelove/public">
    allow from all
    AllowOverride all
    Options Indexes FollowSymLinks MultiViews
    </Directory>
</VirtualHost>

/var/www/truelove/public/.htaccess

<IfModule mod_rewrite.c>
	Options +FollowSymLinks
	RewriteEngine On
</IfModule>

# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
RewriteRule . index.php [L]
</IfModule>

备注:改成 RewriteRule .* index.php [L] 也没用

这问题折腾了我一个多月了!求高手帮忙解决!

加载中
0
pantrick
pantrick
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\\.php|resources|uploads|robots\\.txt)
RewriteRule ^(.*)$ /index.php/$1 [QSA,PT,L]
</IfModule>
放在网站根目录的.htaccess中,这可是我正在用的,而且我的配置和你一摸一样!
帖子列表
帖子列表
终于解决了! 用的这个配置 之前不可以的原因如你所言是没有开启url rewrite模块 运行: sudo a2enmod rewrite 即可 非常感谢!
帖子列表
帖子列表
我确实是日此放置的,可就是不起作用啊
0
GSMLG
GSMLG
开源精神不就是代码让你看,要帮助支持付费么
0
pantrick
pantrick

算了,给你贴上我的配置

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\\.php|resources|uploads|robots\\.txt)
RewriteRule ^(.*)$ /index.php/$1 [QSA,PT,L]
</IfModule>




#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond $1 !^(index\\.php|resources|uploads|robots\\.txt)
#RewriteRule ^(.*)$ /index.php/$1 [QSA,PT,L]
#</IfModule>
管用的

帖子列表
帖子列表
在我的机器没作用
0
南湖船老大
南湖船老大
RewriteRule ^(.*)$ /index.php/$1
帖子列表
帖子列表
这样还是不行呢 <IfModule mod_rewrite.c> RewriteRule ^(.*)$ /index.php/$1 </IfModule>
0
你打球像那谁
你打球像那谁
请问你的重写模块打开了吗?
帖子列表
帖子列表
正是这个问题,谢谢!
0
Narky
Narky
我猜是你的apache没有加载rewrite模块
帖子列表
帖子列表
没错! 谢谢!!
0
pantrick
pantrick
phpinfo贴出来!
帖子列表
帖子列表
贴出来了: http://htmlpaste.com/84aafbb1b89ecb7805f7fc721e48ac55ebd5cc7f
0
pantrick
pantrick

Loaded Modules core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_setenvif mod_status

信息不全,而这里是加载的所有model ,没发现url_rewrite,安装这个model就可以了,如果你是从源码编译安装可能费点事

返回顶部
顶部