Eu tenho o arquivo .htaccess
que estou usando para testar , aqui está o meu arquivo:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([a-z-]+)/?$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%{SERVER_NAME}/?title=%1 [L]
Estou usando Apache / 2.4.10 (Win32) em ApacheLounge
Eu tenho o seguinte domínio e subdomínio:
- example.com
- m.example.com
Ambos apontam para o mesmo endereço IP, agora como eu esperava do acima .htaccess
:
se eu acessar example.com/Article-Name/
, o redirecionamento para example.com/?title=Article-Name
será interno , não será possível ver ?title=Article-Name
na minha barra de URL.
Aqui está a exceção:
Se eu acessar m.example.com/Article-Name/
, o redirecionamento para m.example.com/?title=Article-Name
será external e agora vejo m.example.com/?title=Article-Name
em minha barra de URL.
Então, eu estava esperando o mesmo comportamento, se alguém tiver uma ideia, ficarei muito agradecido.
EDITAR:
Eu encontrei uma solução para o problema, mas ainda interessante sobre o problema acima, sobre a solução é usar:
RewriteRule ^ ?title=%1 [L]
Por favor note: esta solução é necessária apenas para m.example.com , eu realmente não tenho ideia de como esta solução está funcionando, eu postei esta solução porque pode ajudar a encontrar a causa do problema acima e como esta solução está funcionando.
EDIT 2 (o arquivo completo .htaccess):
RewriteEngine On
<If "%{HTTP_HOST} = 'avielfadida.ml'">
# The actual condition is really long one so I replaced it for illustration.
RewriteCond %{HTTP_USER_AGENT} (iPhone|Blackberry|Android) [NC]
RewriteRule ^ http://m.%{HTTP_HOST}%{REQUEST_URI} [R,L]
# I have to duplicate the RewriteCond and RewriteRule both inside the <If> and <Else>
RewriteCond %{REQUEST_URI} ^/([a-z-]+)/?$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%{HTTP_HOST}/?title=%1 [L]
# The solution(the solution is not required inside this block):
#RewriteRule ^ /?title=%1 [L]
</If>
<ElseIf "%{HTTP_HOST} = 'm.example.com'">
# I have to duplicate the RewriteCond and RewriteRule both inside the <If> and <Else>
RewriteCond %{REQUEST_URI} ^/([a-z-]+)/?$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%{HTTP_HOST}/?title=%1 [L]
# The solution(the solution is required here):
# RewriteRule ^ /?title=%1 [L]
DirectoryIndex /m/index.htm /m/index.php /m/index.html
</ElseIf>
Nota importante: não há relação entre o arquivo .htaccess completo e o problema, a razão para essa atualização é pela pequena chance de ter cometido um erro, de qualquer forma testei o .htaccess arquivo com apenas as 3 linhas da questão.
AQUI ESTÁ O ARQUIVO HTTPD.CONF
Última atualização:
RewriteEngine On
# The actual condition is really long one so I replaced it for illustration.
RewriteCond %{HTTP_USER_AGENT} (iPhone|Blackberry|Android) [NC]
RewriteCond %{HTTP_HOST} !^m\.example\.com$ [NC]
RewriteRule .* http://m.example.com%{REQUEST_URI} [R,L]
RewriteCond %{REQUEST_URI} ^/([a-z-]+)/?$ [NC]
RewriteRule .* /?title=%1 [L]
<If "%{HTTP_HOST} = 'm.avielfadida.ml'">
DirectoryIndex /m/index.htm /m/index.php /m/index.html
</If>