全球主机交流论坛

标题: 求大佬写条apache rewrite规则 [打印本页]

作者: lanleoean    时间: 2018-2-3 03:48
标题: 求大佬写条apache rewrite规则
本帖最后由 lanleoean 于 2018-2-3 13:20 编辑

aaa.com/watch?v=abc
跳转到
aaa.com/video?url=https://youtu.be/abc

目前的rewrite规则

  1.     RewriteEngine On

  2.     RewriteCond %{HTTP_HOST} ^alltube\.herokuapp\.com$ [NC]
  3.     RewriteRule ^(.*)$ https://www.alltubedownload.net/$1 [R=301,L]

  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteRule ^ index.php [QSA,L]

  6.     RewriteCond %{SERVER_PORT} !^443$
  7.     RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
复制代码


搭建了个alltube,想方便点下ytb
apache的,谢大佬
事后再补500金


成功了,规则如下:
  1. RewriteEngine On

  2.     RewriteCond %{HTTP_HOST} ^alltube\.herokuapp\.com$ [NC]
  3.     RewriteRule ^(.*)$ https://www.alltubedownload.net/$1 [R=301,L]

  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteCond %{REQUEST_URI} !^/watch(.*)$
  6.     RewriteRule ^ index.php [QSA,L]

  7.     RewriteCond %{SERVER_PORT} !^443$
  8.     RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

  9.     RewriteCond %{QUERY_STRING} ^v=(.*)$
  10.     RewriteRule ^watch(.*)$ https://%{SERVER_NAME}/video?url=https://youtu.be/%1 [R=301,L]
复制代码

作者: 今晚我是你的    时间: 2018-2-3 03:48
lanleoean 发表于 2018-2-3 11:57
更新了 大佬看下

一个问号那就好搞了
  1. RewriteCond %{QUERY_STRING} ^v=(.*)$ [NC]
  2. RewriteRule ^watch(.*)$ http://127.0.0.1/video?url=https://youtu.be/%1 [R=301,NC,L]
复制代码

作者: tension    时间: 2018-2-3 04:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: Freetion    时间: 2018-2-3 04:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: Freetion    时间: 2018-2-3 04:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: lanleoean    时间: 2018-2-3 04:48
tension 发表于 2018-2-3 04:07
RewriteRule /video?url=https://ytb.com/watch?v=(.+) /watch?v=$1 [QSA]

失败了,RewriteRule 好像不会匹配?后面的字符串
作者: lanleoean    时间: 2018-2-3 04:51
Freetion 发表于 2018-2-3 04:11
RewriteRule ^/video?url=https://ytb.com/watch?v=(.*)$ /whatch?v=$1
试试看?

失败了,RewriteRule 好像不会匹配?后面的字符串
作者: Freetion    时间: 2018-2-3 05:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 今晚我是你的    时间: 2018-2-3 10:45
本帖最后由 今晚我是你的 于 2018-2-3 10:47 编辑

有2个问号不好搞,还是换nginx?

1个问号的话有个案例

把 /abc?id=123  =>  /def.php?id=123 的写法:


RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=(.+)$
RewriteRule ^/abc$ /def.php?sid=%1 [L]


RewriteRule 不会去匹配 ? 后面的字符串,需要用RewriteCond来匹配
作者: lanleoean    时间: 2018-2-3 11:57
今晚我是你的 发表于 2018-2-3 10:45
有2个问号不好搞,还是换nginx?

1个问号的话有个案例

更新了 大佬看下
作者: lanleoean    时间: 2018-2-3 13:19
今晚我是你的 发表于 2018-2-3 12:34
一个问号那就好搞了

感谢 成功了
就是隐藏index.php的规则要添加一条例外

  1. RewriteEngine On

  2.     RewriteCond %{HTTP_HOST} ^alltube\.herokuapp\.com$ [NC]
  3.     RewriteRule ^(.*)$ https://www.alltubedownload.net/$1 [R=301,L]

  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteCond %{REQUEST_URI} !^/watch(.*)$
  6.     RewriteRule ^ index.php [QSA,L]

  7.     RewriteCond %{SERVER_PORT} !^443$
  8.     RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

  9.     RewriteCond %{QUERY_STRING} ^v=(.*)$
  10.     RewriteRule ^watch(.*)$ https://%{SERVER_NAME}/video?url=https://youtu.be/%1 [R=301,L]
复制代码





欢迎光临 全球主机交流论坛 (https://loc.1226.eu.org/) Powered by Discuz! X3.4