重定向后无法访问帖子或从php页面获取

时间:2012-01-27 14:12:55

标签: php html .htaccess redirect

我正在使用.htaccess将大约100个hmtl页面重定向到单个PHP页面(example.php)。它工作得很好。

我在该页面上分页(example.php),但我使用的是原始HTML网页网址(example.html?page = 2& limit = 20)

  1. 所以example.html,example1.html,example2.html,example3.html都重定向到example.php。
  2. 地址栏仍显示“.html”网址,但由于.htaccess重定向,example.php正在呈现。
  3. 当点击分页链接(example.html?page = 2& limit = 20)时,浏览器地址栏会显示正确的.html网址和查询字符串。
  4. 我试图获取页面的值,并在(example.php)中使用$ _GET和$ _REQUEST限制,但我没有成功。
  5. 请帮我阅读(example.html?page = 2& limit = 20)查询字符串参数。

    编辑从评论移植的代码:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !^page-(.*)$
    RewriteRule ^page-(.*)$ size-content.php?sef=$1 [L]
    

3 个答案:

答案 0 :(得分:3)

添加QSA标志,这意味着“查询字符串追加”以确保将现有查询字符串移植到重写的URL中。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^page-(.*)$
RewriteRule ^page-(.*)$ size-content.php?sef=$1 [L,QSA]

答案 1 :(得分:0)

.htaccess修改您的服务器配置。

如果您要进行重定向,则更改您的请求。 如果你当然使用Apache,请尝试使用mod_rewrite。

RewriteEngine On
RewriteRule ^example\.html\?(.*) example.php?$1

Mod重写是Apache的模块。大多数免费托管都不允许这样做。

答案 2 :(得分:0)

Yasir - 您可以通过两种方式解决此问题: 1)重写.htaccess的规则

RewriteEngine On RewriteCond%{REQUEST_FILENAME}!^ page - (。)。html(。)/(。)$ RewriteRule ^ page - (。)。html(。)/(。)$ size-content.php?sef = $ 1& page = $ 2& limit = $ 3 [L]

此规则将处理:page-example.html?page = 2& limit = 20

我希望 - 您将很容易理解上述规则。

注意:如果你改变htaccess中的规则,请记住一件事,即每个链接应该是相同的模式。

2)您可以在“size-content.php”

上解决此问题

假设page-example.html?page = 2& limit = 20

$ _ GET ['sef'] = example.html?page = 2& limit = 20 [根据你.htaccess]

现在您可以通过爆炸功能解析此字符串

由于