.htaccess被忽略了?不像它应该的那样重定向

时间:2013-02-20 04:59:46

标签: php .htaccess url url-rewriting

好吧我正在尝试使用Lando(landocms.com),我正试图让漂亮的网址选项工作。

默认情况下,Lando默认会创建以下链接:domain.com/index.php/page。据说,有一种方法可以删除index.php,使链接成为:domain.com/page。我按照指示创建了一个.htaccess,但它不起作用。

这是我正在使用的.htaccess:

<IfModule mod_rewrite.c>
  RewriteCond   %{REQUEST_FILENAME}   !-f 
  RewriteCond   %{REQUEST_FILENAME}   !-d 
  RewriteRule   ^(.*)$                index.php/$1  [L]
</IfModule>

我尝试了很多变种,/ index.php /,index.php?还有更多,但没有工作。根据HostGator一切都应该没问题。有什么想法吗?我想我会疯了哈哈。

谢谢!

2 个答案:

答案 0 :(得分:2)

重写CMS是一种双层方法。首先,您需要设置.htaccess(我已经为您安排了一个更安全的地方):

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php [QSA,L]

然后,LandoCMS允许您通过打开管理面板中的相应设置从生成的地址中删除index.php。有关详细信息,请参阅this link

如果我提供的.htaccess内容不起作用,那么只需使用CMS提供的内容即可。

答案 1 :(得分:0)

您想要从任何网址中删除index.php部分,但仍会通过index.php处理传入的友好网址

RewriteEngine On

# remove index.php and redirect client
RewriteCond %{ENV:REDIRECT_SEO} ^$
RewriteRule ^/?index.php/(.*) /$1 [R,L]

# process friendly URL
RewriteCond %{REQUEST_URI} !^/index.php/
RewriteRule .+ /index.php/$0 [E=SEO:1,L]

环境设置E=SEO:1可以防止无限循环。