1

現在

そのようなhrefを追加すると、すでに機能します

<a href="central-cliente">Click here to go to the client center</a>

しかし、ほとんどの私のリンクはこのようなもので、URL に clientarea.php が表示されます。

<a href="clientarea.php">Click here to go to the client center</a>

問題

フレンドリーでない URL (.php、.html など) をクリックしても、クライアントにフレンドリーな URL が表示されるようにしたい

.htaccess

Options +FollowSymlinks
RewriteEngine On
Options -MultiViews
RewriteBase /painel/

RewriteRule ^central-cliente$ ./clientarea.php [L,NC]
RewriteRule ^registro$ ./register.php [L,NC]
RewriteRule ^entrar$ ./clientarea.php [L,NC]
RewriteRule ^sair$ ./logout.php [L,NC]
RewriteRule ^whois-dominio$ ./domainchecker.php [L,NC]
RewriteRule ^pagina-inicial$ ./index.php [L,NC]
RewriteRule ^sua-conta$ ./clientarea.php [L,NC]
RewriteRule ^base-conhecimento$ ./knowledgebase.php [L,NC]
RewriteRule ^tickets-suporte$ ./submitticket.php [L,NC]
RewriteRule ^status-servidor$ ./serverstatus.php [L,NC]
RewriteRule ^recuperar-senha$ ./pwreset.php [L,NC]
RewriteRule ^status-servidor$ ./serverstatus.php [L,NC]
RewriteRule ^tickets-suporte-geral$ ./submitticket.php?step=2&deptid=1 [L,NC]
RewriteRule ^central-cliente$ ./clientportal.php [L,NC]
RewriteRule ^meus-dados$ ./clientarea.php?action=details [L,NC]
RewriteRule ^meus-servicos$ ./clientarea.php?action=products [L,NC]
RewriteRule ^meus-dominios$ ./clientarea.php?action=domains [L,NC]
RewriteRule ^meus-orcamentos$ ./clientarea.php?action=quotes [L,NC]
RewriteRule ^minhas-faturas$ ./clientarea.php?action=invoices [L,NC]
RewriteRule ^meus-tickets$ ./supporttickets.php [L,NC]
RewriteRule ^afiliados$ ./affiliates.php [L,NC]
RewriteRule ^meus-emails$ ./clientarea.php?action=emails [L,NC]
RewriteRule ^sair$ ./logout.php [L,NC]
RewriteRule ^enviar-ticket$ ./submitticket.php?step=2&deptid=1 [L,NC]
RewriteRule ^download$ ./downloads.php [L,NC]
RewriteRule ^carrinho$ ./cart.php [L,NC]
RewriteRule ^extras$ ./cart.php?gid=addons [L,NC]
RewriteRule ^renovar-dominio$ ./cart.php?gid=renewals [L,NC]
RewriteRule ^registrar-dominio$ ./cart.php?a=add&domain=register [L,NC]
RewriteRule ^pagamentos-multiplos$ ./clientarea.php?action=masspay&all=true [L,NC]
RewriteRule ^adicionar-credito$ ./clientarea.php?action=addfunds [L,NC]
RewriteRule ^cartao-credito$ ./clientarea.php?action=creditcard [L,NC]
RewriteRule ^base-de-conhecimento$ ./knowledgebase.php [L,NC]
RewriteRule ^downloads$ ./downloads.php [L,NC]
RewriteRule ^status-da-rede$ ./serverstatus.php [L,NC]
RewriteRule ^sub-contas$ ./clientarea.php?action=contacts [L,NC]
RewriteRule ^emails-enviados$ ./clientarea.php?action=emails [L,NC]
RewriteRule ^mudar-senha$ ./clientarea.php?action=changepw [L,NC]
RewriteRule ^afiliados$ ./affiliates.php [L,NC]
RewriteRule ^suporte$ ./submitticket.php?step=2&deptid=1 [L,NC]
RewriteRule ^transferencia-dominio$ ./cart.php?a=add&domain=transfer [L,NC]
4

1 に答える 1

1

残念ながら、マッピングに統一されたパターンはありません。無限のリダイレクトループを防ぐには、最初の1つのルールを他のすべてのルールよりも優先する必要があります

# prevent endless loop    
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

次に、単純なURLの逆マッピングを1つずつ追加します

RewriteRule ^clientarea.php$ central-cliente [R,L]

または、クエリ文字列がある場合は条件付き

RewriteRule ^clientarea.php?action=details$ meus-dados [R,L]

はURLパスの一部ではないため、機能しません。?action=detailsあなたはこれのためにRewriteCondとを持っている必要があります%{QUERY_STRING}

RewriteCond %{QUERY_STRING} action=details
RewriteRule ^clientarea.php$  meus-dados? [R,L]

最後の疑問符?は、置換URLのクエリ文字列を抑制します。

たぶん、少なくとも単純な1対1のリダイレクトにを使用して、マッピングのリストを単純なテキストファイルに保持することができますRewriteMap。しかし、これは.htaccesstxtにsの長いリストがあることと大差ありません。RewriteRule

于 2013-03-17T01:58:25.633 に答える