Php 使用.htaccess重写URL创建重复的mysql条目
如果使用.htaccess重写url,则使用php执行所有插入查询两次(不需要的重复) 我的.htaccess:Php 使用.htaccess重写URL创建重复的mysql条目,php,mysql,.htaccess,mod-rewrite,Php,Mysql,.htaccess,Mod Rewrite,如果使用.htaccess重写url,则使用php执行所有插入查询两次(不需要的重复) 我的.htaccess: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<?php define('DB_LOGIN', 'mylogin');
define('DB_PASS', 'mypass');
define('DB_HOST', 'localhost');
define('DB_TYPE', 'mysql');
define('DB_NAME', 'dbname');
$mysql = MySQL_Connect(DB_HOST, DB_LOGIN, DB_PASS);
$mysql_db = MySQL_Select_DB(DB_NAME);
mysql_query("INSERT INTO `pages` (`title`, `slug`) VALUES ('TEST', 'test')"); ?>
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
和index.php:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<?php define('DB_LOGIN', 'mylogin');
define('DB_PASS', 'mypass');
define('DB_HOST', 'localhost');
define('DB_TYPE', 'mysql');
define('DB_NAME', 'dbname');
$mysql = MySQL_Connect(DB_HOST, DB_LOGIN, DB_PASS);
$mysql_db = MySQL_Select_DB(DB_NAME);
mysql_query("INSERT INTO `pages` (`title`, `slug`) VALUES ('TEST', 'test')"); ?>
默认情况下,浏览器会自动请求favicon.ico文件。
但您没有任何favicon.ico文件,所以它会被重写(htaccess中的规则)。
这就是为什么您有一个重复的execute 解决方案:
此外,您还可以在SQL表中设置主键或唯一键(例如,“title”)。仅此一项就可以防止任何重复条目。谢谢您的回复!我尝试了您的解决方案,但数据库中仍有2个条目。在sql查询中,我尝试放置
$\u SERVER['REQUEST\u URI']
,因此在DB中我看到了这两个请求。如果执行(例如)mysite.com/dashboard,则从请求uri保存到数据库:/dashboard
和/favicon.ico
。所以我试着把favicon.ico
放到我的服务器上,一切都正常,即使没有你的解决方案(识别重写的url)。这可以吗,还是修复.htaccess中缺少的favicon更好?调试的反应很好:)我编辑了我的答案,用favicon解释了这个问题