Cba*_*bas 9 regex apache .htaccess mod-rewrite url-rewriting
编辑:当前.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]
Run Code Online (Sandbox Code Playgroud)
我的网站托管在连接到大型托管帐户的域的子文件夹中.
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
Run Code Online (Sandbox Code Playgroud)
问题是我正在使用两个不同的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>
Run Code Online (Sandbox Code Playgroud)
我仍然得到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'部分,即使它是请求的一部分(因为我的所有内容都已在其中指定'.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]
Run Code Online (Sandbox Code Playgroud)
在我的htaccess文件中,我需要在所有情况下从URL中删除文件扩展名?谢谢
anu*_*ava 37
尝试使用此代码隐藏.php(将双向工作):
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]
## 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 %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)