我不太擅长 .htaccess,所以我不知道它是如何工作的,我有一个网站,我的网站链接是这样的:mysite.com/pagee.php?menu_id=1我使用这个 .htaccess 代码:
<IfModule mod_rewrite.c>
RewriteEngine on
# 1-level
RewriteRule ^home/{0,1}$ pagee.php?menu_id=1 [QSA,L]
</IfModule>
它是这样工作的:mysite.com/home/
但我的问题是我有很多这样的页面:
mysite.com/pagee.php?menu_id=2, mysite.com/pagee.php?menu_id=3, mysite.com/pagee.php?menu_id=4, mysite.com/pagee.php?menu_id=5, mysite.com/pagee.php?menu_id=6,
我的 pagee.php 代码是:
<?php
require_once('config2.php');
$menu_id = intval($_GET['menu_id']);
$query = "SELECT * FROM menu WHERE `menu_id`=$menu_id";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
echo '<h1>'.$row['mname'].'</h1>';
}
?>
pagee.php 与 mysql 一起工作
那么如何让代码在 .htaccess
中像这样工作:
<IfModule mod_rewrite.c>
RewriteEngine on
# 1-level
<?php
$query = "SELECT * FROM menu WHERE `menu_id`=$menu_id";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$menu_id=$row['menu_id'];
$linkname=$row['linkname'];
echo 'RewriteRule ^'.$linkname.'/{0,1}$ pagee.php?menu_id='$menu_id' [QSA,L]';
} ?>
</IfModule>
最佳答案
PHP 无法控制 .htaccess ok,但您也可以通过写入和重写 .htaccess 文件来控制它,我可以理解,但我认为这不能正常工作。但你也可以试试,
Made a
function
and inside that do this:
function edit_hta() {
echo "<IfModule mod_rewrite.c> \r\n
\r\n RewriteEngine on \r\n";
require('config2.php'); $getquery=mysql_query("SELECT * FROM menu ORDER BY menu_id DESC"); while($rows=mysql_fetch_assoc($getquery)){$menu_id=$rows['menu_id']; $linkname=$rows['linkname'];
echo "\r\n RewriteRule ^".$linkname."/{0,1}$ pagee.php?menu_id=".$menu_id. "[QSA,L] \r\n"; }
echo "\r\n </IfModule>";
}
OK, then make form, textarea and submit button
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>
<textarea name="edit_ht" cols="45" rows="5"><?php echo edit_hta(); ?></textarea>
</label>
<input name="submit" type="submit" value="Edit" />
</form>
Than make php coding inside that page:
$submit = $_POST['submit'];
if ($submit) {
$edit_ht = file_put_contents('.htaccess', $_POST['edit_ht']);
}
我希望它能做得很好,所以最重要的是,如果你的 sql 数据库中有很多页面,首先你必须创建所有页面,而不是你在 from sheet 中看到的所有页面,所有链接都显示在 textarea 中像这样:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^asasasa/{0,1}$ pagee.php?menu_id=10[QSA,L]
RewriteRule ^zxzxzx/{0,1}$ pagee.php?menu_id=9[QSA,L]
RewriteRule ^movie/{0,1}$ pagee.php?menu_id=8[QSA,L]
RewriteRule ^song/{0,1}$ pagee.php?menu_id=7[QSA,L]
RewriteRule ^software/{0,1}$ pagee.php?menu_id=6[QSA,L]
RewriteRule ^home/{0,1}$ pagee.php?menu_id=5[QSA,L]
</IfModule>
然后您点击“编辑”按钮,您的 .htaccess 文件将被编辑,使用此方法您可以控制您的 .htaccess 文件。 我希望你能理解,如果你不理解,请给我评论。 谢谢。
关于php - 如何使用 php 控制 .htaccess 或如何在 .htaccess 文件中输入 php 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532726/