【问题标题】:mod_rewrite problem, with accessing files?mod_rewrite 问题,访问文件?
【发布时间】:2013-07-13 00:57:51
【问题描述】:

我在根文件夹中有一个名为 sumbit.php 的文件

当我访问这样的页面时

 http://www.example.com/viewtopic.php?topic=14

新网址是

http://www.example.com/topic/14

在萤火虫上说它正在访问http://www.example.co.uk/topic/submit.php,而它的意思是访问http://www.example.co.uk/submit.php

我的 .ht 访问代码

RewriteEngine On

RewriteRule ^user/([^/]*)$ /viewprofile.php?user=$1 [L]
RewriteRule ^topic/([^/]*)$ /viewtopic.php?topic=$1 [L]

我似乎看不出问题出在哪里,p.s. sumibit.php 来自表单提交操作

【问题讨论】:

    标签: php url .htaccess mod-rewrite


    【解决方案1】:

    这是因为 HTML 中的 submit.php 链接使用了相对路径。相对路径取决于您当前所在的目录。因此,当您在 URL 中添加斜杠时,它会变得一团糟。

    您应该修复您的 HTML 以使用绝对路径 (/submit.php)。如果这不可行,请编写一个新的重写规则,将^.*/submit.php$ 映射到正确的路径。

    【讨论】:

    • 所以我需要对所有文件执行重写规则
    • @getaway 只需将 RewriteRule ^.*/submit.php$ /submit.php [L] 添加到您的 .htaccess 文件中。或者您可以搜索所有相对路径并修复它们。
    【解决方案2】:

    这是我知道的一个旧线程,但是...我认为用户 (OP) 所追求的是实际地址隐藏.../克隆...以隐藏原始路径?...

    所以:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /
    #my url is in the form of domain.com/photograph/GALLERY/IMAGE NUMBER
    RewriteRule ^photograph/(.*)/(.*)$  /albums/index.php?op=large&gallery=$1&curImage=$2&rd=ht [QSA,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2011-05-12
      相关资源
      最近更新 更多