【发布时间】:2015-07-28 14:25:09
【问题描述】:
我一开始尝试用 .htaccess 隐藏我的 .php 扩展名。在文件中包含这个后它确实可以正常工作
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
并且还包括在我的function.php中
//==== Strip .php extension from requested URI
function strip_php_extension()
{
$uri = $_SERVER['REQUEST_URI'];
$ext = substr(strrchr($uri, '.'), 1);
if ($ext == 'php')
{
$url = substr($uri, 0, strrpos($uri, '.'));
redirect($url);
}
}
//==== Redirect. Try PHP header redirect, then Java, then http redirect
function redirect($url)
{
if (!headers_sent())
{
/* If headers not yet sent => do php redirect */
header('Location: '.$url);
exit;
}
else
{
/* If headers already sent => do java redirect */
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
/* If java is disabled => do html redirect */
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0; url='.$url.'" />';
echo '</noscript>';
exit;
}
}
问题是动态页面的 url 没有改变.. 我还有 page.php?p=5 并且 blog.php?post=5 不会更改为 page?p=5 和 blog?post=5..
我确实想将上述动态页面 url 更改为类似 www.yourdomian.com/5 的 page.php 和 www.yourdomain.com/blog/5 的博客,但这不是从我的在 htacces 中重写规则
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?p=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ page.php?p=$1
请指出我做错了什么的正确方向。以及如何解决它。
【问题讨论】:
-
您的 .htaccess 在哪里?
-
我的应用程序的根目录。 index.php 在哪里
-
about-us.php在哪里?内部/Applications/MAMP/htdocs/MyApp或/Applications/MAMP/htdocs/ -
在 /Applications/MAMP/htdocs/MyApp/
标签: php regex .htaccess mod-rewrite seo