抱歉,我无法想出一个更好的头衔。
这是我的htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L,QSA]
这是我的问题:
localhost / validpage为我提供了localhost / validpage.php的内容。 localhost / validpage / blah也给了我相同的(validpage.php)页面,localhost / validpage / blah / blah / ...也是如此。 因此,我面临的问题是链接 duplicity (用我的话来说!)。
如何仅允许从localhost/validpage.php
访问localhost/validpage
,而不允许localhost/validpage.php
访问{{1}}。
我已经在*Server****Fault***上提出了一个问题,但没有取得多大成功。 我得到的答案是单靠htaccess无法做到。
有效页面是指服务器上的任何有效页面。由于我正在使用mod_rewrite改造现有网站以获得更清晰的网址,因此我正在寻找一种相对简单的解决方案,最好只使用.htaccess。但是,欢迎任何解决方案。
答案 0 :(得分:1)
你的图像的源属性是什么?等 绝对的还是相对的?
<img src="/images/my.jpg" />
和<img src="images/my.jpg" />
在应用重写规则时指向不同的文件。
答案 1 :(得分:1)
您可以尝试在.htaccess中使用此功能
RewriteEngine on
RewriteBase /
# if request has a php extension remove and redirect
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^((.*)\.php)$
RewriteRule ^(.*).php$ $1 [L,R=301]
# if request uri has no extension link to php file
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我应该将PHP脚本重写为友好的URL,并使用.php扩展名重定向请求。