jQu*_*ast 6 php apache .htaccess mod-rewrite url-rewriting
我正在尝试将子域(非REDIRECT)重写为$ _GET参数,如下所示:
期望的结果:
http://go.example.bz/link/abcde -> http://example.bz/go/link?id=abcde
or
http://go.example.bz/hrm/employee/8 -> http://example.bz/go/hrm/employee?id=8
Run Code Online (Sandbox Code Playgroud)
目前有什么工作:
http://example.bz/go/link/abcde -> http://example.bz/go/link?id=abcde
and
http://example.bz/go/hrm/employee/8 -> http://example.bz/go/hrm/employee?id=8
Run Code Online (Sandbox Code Playgroud)
使用root中的.htaccess:
RewriteEngine On
RewriteRule ^go/link.php/([^/\.]+)/?$ go/link.php?id=$1 [L]
RewriteRule ^go/hrm/employee.php/([^/\.]+)/?$ go/hrm/employee.php?parameter=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
AddCharset UTF-8 .php
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
这就是我重定向子域的方式:
<VirtualHost *:80>
Servername go.example.bz DocumentRoot /var/www/go
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我不想重定向到 - >目的地,而是保留http://go.example.bz/link/abcde网址但是有/ link的结果?abcde
我认为我的问题来自于未从子域 URL 中删除 .php 扩展名,我在这里找到了答案https://css-tricks.com/forums/topic/remove-php-extension-from-subdomain-urls/然后我这样改变了我的重写规则:
RewriteEngine On
RewriteRule ^go/link/([^/\.]+)/?$ go/link.php?id=$1 [L]
RewriteRule ^go/hrm/employee/([^/\.]+)/?$ go/hrm/employee.php?id=$1 [L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^go\.example\.bz$ [OR]
RewriteCond %{HTTP_HOST} ^www\.go\.example\.bz$
RewriteRule ^/?$ "http\:\/\/tgc\.bz\/go" [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
AddCharset UTF-8 .php
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |