【问题标题】:.htaccess effect the other url on file.htaccess 影响文件上的其他 url
【发布时间】:2017-05-04 10:00:47
【问题描述】:

我最近创建了 .htaccess 来重写 SEO 友好的 url。 网址变得工作正常。但是我分配的 url 会影响其他的 url。 .htaccess 文件如图所示。当主题文件运行时。当我单击主题页面上的任何其他文件时,该 url 将作为 class/physics。在更改 url 之前,登录页面 url 是 login.php 在更改其他文件的名称后,它也会影响 login.php,它看起来像 class/login.php,这很烦人。指导我解决这个问题。

<Files .htaccess>
order allow,deny
</Files>
Options +FollowSymLinks
RewriteEngine On 

#--exclude real directories
RewriteCond %{REQUEST_FILENAME} !-d
#--and files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(\w+)/(\w+)$ ./subject.php?class=$1&subject=$2 [NC,L]

【问题讨论】:

标签: php apache .htaccess url


【解决方案1】:

您的相对 URL 似乎有问题。如果在 /class/physics 页面(或 URL)上,您有一个 relative 链接到 login.php,那么这自然是相对于 /class/“目录”(因为它出现在客户端),因此生成的 URL 是 /class/login.php,而不是 /login.php,这似乎是您的意图。

理想情况下,您需要使您的网址相对于根(以斜杠开头),例如。 /login.php。 (甚至是绝对的,带有方案 + 主机名。)

或者,作为解决方法,您可以使用head 部分中的base 元素来通知用户代理相对URL 是相对于什么。例如,如果这些 URL 旨在相对于文档根目录,则:

<base href="http://example.com/">

但请注意,base 标签有一些注意事项。值得注意的是,如果您使用的是内部锚点,例如。 #top,那么这现在是相对于 base URL。 (这在没有 hack 的情况下会在 IE6 上中断。)

您的旧网址(即/subject.php?class=abc&amp;subject=abc)似乎都在文档根目录中,因此您的相对链接不是问题。

【讨论】:

    猜你喜欢
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多