我有一个 PHP 网站,我想隐藏扩展程序。我通过谷歌找到了一些东西,但它们似乎都太复杂了,或者它们将 index
重定向到 index.php
:就像你写 name.com/contact
它转到 name.com/contact.php
。我不想要那个,我只想:
www.name.com/es/index.php to be www.name.com/es/inicio
www.name.com/es/empresa.php to be www.name.com/es/empresa
www.name.com/es/productos.php to be www.name.com/es/productos
www.name.com/es/clientes.php to be www.name.com/es/clientes
www.name.com/es/recetas.php to be www.name.com/es/recetas
www.name.com/es/contacto.php to be www.name.com/es/contacto
www.name.com/en/index.php to be www.name.com/en/home
www.name.com/en/company.php to be www.name.com/en/company
www.name.com/en/products.php to be www.name.com/en/products
www.name.com/en/clients.php to be www.name.com/en/clients
www.name.com/en/recepis.php to be www.name.com/en/recepis
www.name.com/en/contact.php to be www.name.com/en/contact
/en/
文件夹为英文版,/es/
文件夹为西类牙文版/p>
还有网站内的链接,也没有扩展名。
例如,链接到 clientes
的图像将是 clientes
而不是 clientes.php
and 如果有人尝试访问 /page.php
,它仍然有效,但会重定向到 /page
。
最佳答案
htacces 文件应如下所示:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
您在没有“php”的情况下重定向 url 中具有相同名称的任何 php 文件。
然后在您的 php 文件中,您可以检查 url 是否包含扩展名 (http://blabla.com/bla.php) 并将页面重定向到没有扩展名的同一页面。
所以,在每个 php 文件的开头你应该调用这个函数:
function redirectIfNeeded(){
$url = $_SERVER["REQUEST_URI"];
if(preg_match("/\.php/$", $url))
header("Location: ".preg_replace("/\.php/",$url));
}
https://stackoverflow.com/questions/6241408/