I'm trying to rewrite a subdomain (NOT REDIRECT) to a $_GET parameter as such:
Desired result:
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
What's currently working:
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
with this .htaccess in the root:
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
and this is how I redirect the subdomain:
<VirtualHost *:80>
Servername go.example.bz DocumentRoot /var/www/go
</VirtualHost>
I do not want to redirect to the -> destination, rather to keep the http://go.example.bz/link/abcde url but have the results of the /link?abcde
I figured that my problem came from not remove .php extension from subdomain URLs of which I found an answer here https://css-tricks.com/forums/topic/remove-php-extension-from-subdomain-urls/ and then I alternated my RewriteRules as such:
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
You can use this rule in root .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.(example\.com)$ [NC]
RewriteRule ^(link)/(.+)$ http://%2/%1/$1?id=$2 [NC,L,QSA,R=302]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With