我已经使用ht访问隐藏.php文件扩展名.在.htaccess文件中,我的代码是:
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
</IfModule>它很好地隐藏了.php文件扩展名。但是问题是、链接在href属性中没有正确打开。
我有两份文件:
public_html/afiliate/product_details.phppublic_html/afiliate/afiliate_login.php
在product_details.php内部,我给出了这样的afiliate_login.php链接
<a href="afiliate_login.php" target="_blank">Log in</a>单击登录,我应该转到一个类似的页面
example.com/afiliate/afiliate_login/
但这需要我
example.com/afiliate/product_details/afiliate_login/
从而导致404错误
再次注意,如果我手动输入这个URL
example.com/afiliate/afiliate_login/
没关系,它会像预期的那样转到页面。
现在我怎样才能使链接正常工作?
发布于 2015-06-15 10:34:20
在此代码之后:
RewriteRule ^([^\.]+)/$ $1.php 把下面的代码
RewriteRule afiliate_login$ afiliate_login.php [L]基本上意味着任何传入afiliate_login的请求都将显示来自afiliate_login.php的数据
您遇到了这个问题,因为您在锚标记中使用的是相对url。因为您的url没有文件扩展名,所以example.com/afiliate/afiliate_login/,affiliate_login/也将被视为一个目录,而html认为锚标记在affiliate_login/中,但实际上它并不存在,因此您得到了404错误。
https://stackoverflow.com/questions/30842577
复制相似问题