Php .htaccess被忽略了吗?不要像这样重定向';应该是的

Php .htaccess被忽略了吗?不要像这样重定向';应该是的,php,.htaccess,url,url-rewriting,Php,.htaccess,Url,Url Rewriting,好的,我正在尝试使用Lando(landocms.com),并且我正在尝试让pretty URL选项工作 基本上默认情况下,Lando会创建如下链接:domain.com/index.php/page。据推测,有一种方法可以删除index.php,使链接变成:domain.com/page。我已经按照指示创建了一个.htaccess,但是它不起作用 以下是我正在使用的.htaccess: <IfModule mod_rewrite.c> RewriteCond %{REQUE

好的,我正在尝试使用Lando(landocms.com),并且我正在尝试让pretty URL选项工作

基本上默认情况下,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>

重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]
我尝试过很多变体,/index.php/,index.php?还有很多,但都不管用。根据霍斯盖特的说法,一切都应该很好。有什么想法吗?我想我快疯了哈哈


谢谢

CMS的重写是一种两层方法。首先,您需要设置
.htaccess
(我在这里为您设置了一个更安全的):

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


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

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

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
防止了无休止的循环。

您确定正在读取.htaccess文件并且您的web主机允许.htaccess文件吗?您可以通过引起语法错误来确定它正在被读取——只需在文件顶部写入
asdf
。确保文件.htaccess在正确的目录中“/public\u html/”@jacobdolton尝试了一下,给了我500个错误,所以我猜它正在被读取。@rusly我的站点所在的位置是public\u html,然后是public\u html/domainname。这就是我为这个站点设置.htaccess的地方。当我把它放在public_html中时,我在domain.com/page上得到了500个错误。首先,你为什么不使用Lando在@MikeAnthony指出的链接中给出的完整规则集?缺少一些重要的指令。按照兰多的指示,他们知道自己在说什么。不用说,浏览器地址栏中显示的传入、输入、链接到的URL应该是:
domain.com/page
,而不是这一个
domain.com/index.php/page
。谢谢你的帮助,不过我尝试了你的.htaccess,它没有改变任何东西(我目前使用的是提供的.htaccess,但也不值得。我有权从链接中删除index.php。我开始怀疑这是否真的是
.htaccess
问题…所有内容实际上都在路由,但我认为LandoCMS无法正确处理它。或者,如果我使用带有
index.php
,它可以工作…这很奇怪。你的
htaccess
文件和Lando的索引文件在同一个目录下吗?@MikeAnthony我认为这是cms的问题,但由于它确实可以与index.php url一起工作,我认为不可能是它…(除非我遗漏了什么,我已经尝试了几个小时了)伙计,这看起来完全有道理!不幸的是,它也没有任何作用。:/不过感谢你的帮助!@zakoll它在我本地机器上的虚拟主机上工作。也许你有一些apache设置,你还没有提到。你的vh主机设置是什么?我刚刚发现我的主机运行的是PHP5.2,所以我升级到了5.3(这导致页面上的一个php消失了),但是URL仍然没有骰子!@zakoll这与php无关。这只是关于Apache配置。
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]