【问题标题】:htaccess redirection with Get and a twisthtaccess 重定向与 Get 和一个扭曲
【发布时间】:2014-03-27 19:16:20
【问题描述】:

我正在尝试重定向表单生成的网址

http://domain.co.uk/check.php?s=WUD092050549Ehttp://domain.co.uk/s/WUD092050549E.html

我试过了

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/s/$ check.php?s=$1

RewriteEngine On
RewriteRule ^f/([^-]*)\.html$ /check.php?s=$1 [L]

没有成功。我还想知道是否有一种方法可以让人们在相同的 url 结构中指定格式,即

http://domain.co.uk/check.php?s=WUD092050549&format=jsonhttp://domain.co.uk/s/WUD092050549E.json


编辑

我想出了下面的方法,似乎可以将 URL 重写回它们曾经所在的位置

RewriteEngine on 

RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^([^.]+).([^?]+)$ /s/check.php?s=$1&format=$2

但我无法得到它,所以当表单发送 http://domain.co.uk/check.php?s=WUD092050549E&format=html 时,它会重定向到漂亮的 URL。

【问题讨论】:

  • 对于您的第二个示例http://domain.co.uk/s/WUD092050549E.json,您想要 json 格式的页面内容还是只是 .json 扩展名?
  • 所以我基本上想要http://domain.co.uk/s/{s}.{format} 格式,其中波浪括号中的部分是我的变量。然后我可以使用我的脚本以适当的格式输出。

标签: .htaccess redirect get


【解决方案1】:

以下内容应该适合您:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /check\.php\?s=(.*)&format=(.*)\ HTTP
RewriteRule ^ /s/%2.%3\? [R,L]

【讨论】:

    【解决方案2】:

    你可以使用这条规则:

    RewriteEngine On
    RewriteRule ^s/([\w-]+)\.(.+)$ check.php?s=$1&format=$2 [L,QSA,NC]
    

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多