将静态URL重定向到动态

时间:2015-11-08 16:06:34

标签: apache .htaccess mod-rewrite redirect rewrite

我尝试将现有流量重定向到重写的网站,该网站现在在Apache服务器上使用whatever.com/directory/some_page的动态网址,例如。

whatever.com/directory/?m=some_page重定向到some_page

重写URL的每个示例都显示了相反的方式(动态到静态),因此很难找到工作示例。到目前为止我尝试的所有内容都没有做任何事情或者返回500服务器错误。

原始def userinput(): global adjective1 adjective1 = input("Adjective: ") global noun1 noun1 = input("Noun: ") global noun2 noun2 = input("Noun: ") def story(): print("A vacation is when you take a trip to some " + adjective1 + " place.") print("Usually you go to some place that is near " + noun1 + " or up on " + noun2 + ".") 仍然存在,但它现在只是一堆jpg&#39>而不是索引文件

2 个答案:

答案 0 :(得分:0)

重要的是要了解您所说的示例是重写,其中重写用户看到的URL,以便应用程序获取它可以理解的URL。虽然它听起来像你想要的是一个重定向,这是客户在发送到应用程序之前更改为新的URL。

要从重定向到whatever.com/directory/some_page,您可以执行此操作。

RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R] 

从whatever.com/directory/?m=some_page 重写到whatever.com/directory/some_page,您可以执行此操作。

RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]

要从http://directory/some_page / directory /?m = some_page 重定向,您可以执行此操作。

RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R] 

要从http://directory/some_page / directory /?m = some_page 重写,您可以执行此操作。

RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]

从阅读你的问题我不完全确定你想要做什么,但上面的一个应该解决它。

答案 1 :(得分:0)

.htaccess陷入了循环,因为我无法处理查询字符串(很可能是因为我缺乏经验),所以我利用导航到{{1}返回的403仍然存在但没有索引文件(.htaccess拒绝目录列表)。

403现在被发送到php错误页面,该页面使用<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 重定向到/directory/some_page的正确地址。

我知道调用额外页面的开销,但它不会经常发生(根据服务器日志),并且它可以工作。