gpt4 book ai didi

php - htaccess 重定向以删除 index.php

转载 作者:可可西里 更新时间:2023-11-01 00:10:21 26 4
gpt4 key购买 nike

我希望用户能够使用 $_SERVER['PATH_INFO'] 作为要提供的文件的占位符,并删除地址栏中的 index.php

例如,我想将 me.com/index.php/settings1 作为 me.com/settings1 提供给用户访问的任何 PATH_INFO 等等。

我如何将其写成 htaccess 规则?我什至不知道从哪里开始

如果有帮助,我正在使用 hostgator 的共享托管计划。

根据@EddyFreddy 的建议,我尝试了该问题中提到的两种方法,但没有成功。到目前为止,该文件看起来是这样的:

suPHP_ConfigPath /home/user/php.ini
<Files php.ini>
order allow,deny
deny from all
</Files>

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC]
RewriteRule .? http://mysite.com%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L] # tried with and without the `?`

最佳答案

这可以通过 mod_rewrite 轻松处理。在 DOCUMENT_ROOT 下的 .htaccess 中使用此代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# external redirect from /index.php/foo to /foo/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php(/[^\s\?]+)? [NC]
RewriteRule ^ %1/ [L,R]

# external redirect to add trailing slash
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+((?!.+/[\s\?])[^\s\?]+) [NC]
RewriteRule ^ %1/ [L,R]

# internal forward from /foo to /index.php/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php%{REQUEST_URI} [L,NC]

在确认一切正常后,将 R 更改为 R=301

关于php - htaccess 重定向以删除 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com