Rad*_*lad 4 php .htaccess codeigniter
我正在使用CodeIgnter,因为结果我的所有链接都是base.com/index.php/home/index
或者www.base.com/index.php/home/index
.我想base.com/home/index
尽可能地展示它们.我试过在互联网上查看,从两者中获取htacces的重写:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$0 [PT,L]
RewriteCond %{HTTP_HOST} ^domain\.com\$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com\$
RewriteRule ^/?$ "http\:\/\/domain\.com\/" [R=301,L]
Run Code Online (Sandbox Code Playgroud)
和
RewriteEngine on
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
把它们分开,他们工作.但是他们不做我需要他们做的事.有人知道解决方案吗?谢谢.
对于CI,您需要类似于您的第一组规则,但没有重定向.但重定向需要在路由发生之前发生,因此请尝试:
RewriteEngine On
# redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.base\.com$ [NC]
RewriteRule ^(.*)$ http://base.com/$1 [L,R=301]
# redirect direct requests to /index.php to remove it
RewriteCond %{THE_REQUEST} \ /index\.php/?([^\?\ ]*)
RewriteRule ^ http://base.com/%1 [L,R=301]
# internally route to /index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [PT,L]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1613 次 |
最近记录: |