我知道从 CodeIgniter URI 中删除 index.php 很简单RewriteRule ^(.*)$ index.php/$1 [L]
。我的问题是由于我的 .htaccess 文件中的其他一些规则而发生的。
我的问题是当用户访问 www.mydomain.com/blog 时,他们会被重定向到 mydomain.com/index.php/blog,当有斜杠时不会发生这种情况;www.mydomain.com/blog/ 正确重定向到 mydomain.com/blog。我真的不希望 index.php 在那里。另外一个注意事项是,理想情况下,如果用户在 URL 中输入 index.php,我希望他们能够访问没有的 URL。
我当前的 .htaccess 文件是这样的:
RewriteEngine on
RewriteBase /
# Protect CI system folders
RewriteCond %{REQUEST_URI} ^/(application|system)/(.*)$
RewriteRule ^(.*)$ index.php/$1 [L]
# Prevent rewriting URIs that exist: (-d directory -f files)
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
# Remove index.php
RewriteRule ^(.*)$ index.php/$1 [L]
# Remove www.
RewriteCond %{HTTP_HOST} !^mydomain.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]
# Remove trailing slash
RewriteRule ^(.+)/$ http://mydomain.com/$1 [R=301,L]
我对调整 .htaccess 文件比较陌生;请让我知道那里是否有任何可以针对优化、不良做法等进行调整的内容,其中大部分是通过谷歌漫游创建的!
非常感谢。