我正在用.htaccess重写我的网站网址,但遇到问题,我不知道重写网址,我只是复制并粘贴来自互联网的代码,
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ page.php? [L,QSA]
这适用于我并重定向, www.domain.com/page.php?id=1 至 www.domain.com/page?id=1 。
但是当我打开 www.domain.com/someotherpage.php 时会出现问题,然后它会将我重定向到 page.php 。
还有我在URL中随机编写的 www.domain.com/page
domain.com/any
domain.com/thing
domain.com/written
我做了一些关于这个问题的研究,但是找不到任何解决方案,然后我在这里问了我的问题。
答案 0 :(得分:0)
尝试使用此代码添加.php
扩展程序:
RewriteEngine On
# show 404 for .php requests
RewriteCond %{THE_REQUEST} \.php[?\s/] [NC]
RewriteRule ^ - [R=404,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
答案 1 :(得分:0)
您应该只使用mod_negotiation并启用Multiviews:
Options Multiviews
答案 2 :(得分:0)
我建议将允许的文件放在根目录
中RewriteRule !\.(js|ico|txt|gif|jpg|png|css|swf|JPG|jpeg|html|woff|ttf|svg|htm|cur|PNG|JPEG|GIF|php|whatever_file_type)$ index.php
如果你想在public /目录中访问index.php以外的php脚本,请尝试在zend框架中运行的solition。