编辑:当前 .htaccess 文件:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
我的网站托管在连接到大型托管帐户的域的子文件夹中。
basesite
/iioengine
/forums
/.htaccess //file works
/.... //other MyBB content
/demos.php
/index.php //iioengine.com (homepage)
/.htaccess //file doesn't work
/... //other iioengine php pages
是我使用两个不同的 htaccess 文件的问题吗?
这是一个需要工作的链接:http: //iioengine.com/demos
我注意到这个当前的 htaccess 文件也破坏了所有论坛的 URL
这不再有效:http: //iioengine.com/forums/Forum-Box2D
编辑:感谢您重新打开,我已经取得了一些进展。这是我当前的 htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
我仍然得到 404 页,但如果我把这一行放在:
RewriteRule . /index.php [L]
所有非“.php”的请求都被转发到主页...所以 mod_rewrite 肯定是启用的,它只是不能正常工作。有谁知道可能是什么问题?
编辑:这不是重复的 - 其他解决方案都不适合我。我的问题是不存在解决方案,它为什么不为我工作。没有人能够解决这个问题,我自己也尝试了很多解决方案。这个论坛的目的不就是解决具体问题吗?
请允许我澄清...
我在子文件夹中运行了 MyBB,它的重写工作正常。例如,此链接有效:http: //iioengine.com/forums/Forum-Box2D
所有不属于 MyBB 的 php 页面在其 URL 中仍然具有 .php 扩展名 - 我正在尝试删除这些但没有任何效果。示例:http: //iioengine.com/demos
... [原帖]
显然有很多关于此的信息,但我尝试了近十几种不同的解决方案,但都没有超过 404 页面。
这是我的网站: http: //iioengine.com/,所有页面都是 php,除了主页和所有论坛页面之外的所有页面在其 URL 的末尾都有一个“.php”,我想删除它。
除了将非“.php”请求重定向到正确的页面之外,我还想删除“.php”部分,即使它是请求的一部分(因为我的所有内容都已经在其超链接)。
这是我到目前为止所拥有的,主要来自这篇文章,但它不起作用,我得到一个 404 页面。
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [L,QSA]
RewriteCond %{REQUEST_URI} ^/(.*).php$
RewriteRule ^(.*)$ %1 [L,QSA]
在所有情况下,我需要在我的 htaccess 文件中从 URL 中删除文件扩展名吗?谢谢