在Ubuntu下 ThinkPHP URL 重写问题
使用Thinkphp始终有一个入口文件,比如index.php 那么 访问地址就会是
http://127.0.0.1:88/TpGroupTest/index.php
http://127.0.0.1:88/TpGroupTest/index.php/Home
http://127.0.0.1:88/TpGroupTest/index.php/Home/Index
http://127.0.0.1:88/TpGroupTest/index.php/Home/Index/index
这样的模式,这样对seo来说不是很好。如果把index.php去掉,不但看起来感觉很好,还可以增强seo
针对自己使用这段时间在ubuntu 下进行测试以及浏览很多相关文章,今天终于动手了。以下步骤仅供参考,总之我在千错万错之后总算成功了。也祝你成功。
步骤如下:
1 编辑虚拟主机配置文件:以下为我的主机
<VirtualHost localhost:90>
ServerAdmin webmaster@localhost
DocumentRoot /home/tom/workspace/TpGroupTest/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/tom/workspace/TpGroupTest/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error-90.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-90.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
相关文章参考:
http://www.poloo.org/?p=337
2 创建.htaccess文件来设定我的规则–放在网站根目录,就是上面设置90端口的那个目录
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
3 在config.php里面加上“’URL_MODEL’=>2,”这一项
‘URL_MODEL’ => 2, // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 当URL_DISPATCH_ON开启后有效
4 所有都设置完成之后就可以重启下服务器
sudo /etc/init.d/apache2 restart
打开浏览器,敲入地址:http://localhost:90 就可以访问了。
试试http://localhost:90/Home ??
如果可以访问就证明已经搞定了,
我在设置的时候开始使用子文件夹,总是错误,后来用一个单独端口作了一个基于端口的主机,就可以了。
那个错误还没搞明白,猜想可能是 .htaccess文件的配置问题。有时间再搞,太晚了。 睡觉先。