我想使用htaccess创建一个网址,例如http://example.com/news/news_post.php?id=dynamic_id
,其网址看起来像http://example.com/news/news_post/dynamic_id
。所以基本上删除.php文件扩展名,并为我的news_post.php页面将?id=dynamic_id
设为/dynamic_id
。
我在其他例子中搜索过可能有用的东西,但我找不到任何有用的东西。
如果有人可以帮助我,我们将不胜感激!
答案 0 :(得分:0)
快速谷歌搜索并尝试一些东西我想出了这个......
<强>的.htaccess 强>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/news_post/(\d+)*$ ./news_post.php/$1
<强> news_post.php 强>
<?php
//var_dump($_SERVER);
//var_dump(explode('/',$_SERVER['REQUEST_URI']));
$url_segments = explode('/',$_SERVER['REQUEST_URI']);
//var_dump($url_segments);
$id = $url_segments[3];
//var_dump($id);
echo __FILE__;
echo '<br>';
echo 'The Dynamic Id is '. $id;
因此,您可以使用您喜欢的任何内容来获取其余的URL参数,并随意使用它们...
注意: news_post.php中的var_dumps用于快速查看正在发生的事情以及是什么......如果您愿意,我会将它们留在那里供您玩。
当然你会改变它以适应 - 我只是猜到了你可能做或不想做的事情。
示例:强>
http://phptutorials.com/news/news_post/1
<强>结果:强>
/home/phptutorials/public_html/news_post.php
The Dynamic Id is 1
使用中央文件处理所有请求。 回到 .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
您现在可以使用index.php作为警察&#34;警察&#34;使用上面的代码显示您喜欢的任何页面,如news_post.php中所示。但这不在您的问题之内,而是您可能想要研究的内容。
答案 1 :(得分:0)
您可以将此代码添加到.htaccess文件中:
<强>的.htaccess 强>
RewriteEngine on RewriteCond %{QUERY_STRING} (^|&)id=dynamic_id($|&) RewriteRule ^news/news_post\.php$ /news/news_post/dynamic_id?&%{QUERY_STRING}
答案 2 :(得分:0)
试试这个
我对此进行了测试,并且它在我的系统中完美运行。
<强>的.htaccess 强>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
//above code is use for remove the .php
RewriteRule ^news/news_post/([\w-]+) news_post.php?id=$1
<强>的index.php 强>
在此,我设置了href="javascript:void(0);"
并添加了onclick
函数并将参数传递给函数。在我设置window.location="news/news_post/"+user_id+"";
的功能中,您的网址将显示为news/news_post/1
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
$userdata['Id']=1;
?>
<a href="javascript:void(0);" onclick="myfunciton(<?php echo $userdata['Id']; ?>)">Click me</a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
function myfunciton(user_id){
window.location="news/news_post/"+user_id+"";
}
</script>
</body>
</html>
<强> news_post.php 强>
您可以使用$_REQUEST
<?php
echo $_REQUEST['id'];//output is 1
?>
<强>输出强>
您将获得输出
domain.com/news/news_post/1