{"id":1049,"date":"2026-10-30T17:05:39","date_gmt":"2026-10-30T16:05:39","guid":{"rendered":"https:\/\/www.cisilino.com\/?p=1049"},"modified":"2026-10-30T17:06:19","modified_gmt":"2026-10-30T16:06:19","slug":"hardening-ids-htaccess-rules","status":"publish","type":"post","link":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/","title":{"rendered":"Hardening \/ IDS: the .htaccess rules"},"content":{"rendered":"<p>WordPress hardening in the CSDN plugin sits entirely in one tab: \u201cHardening \/ IDS\u201d. It&#8217;s five switches and one text field. They are there to close doors that almost no site genuinely uses. They are all off, and you turn them on one at a time.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp\" alt=\"Diagram of WordPress with the Hardening \/ IDS tab of the plugin CSDN: WordPress hardening\" width=\"1200\" height=\"630\"\/><\/figure>\n<h2>Where to find WordPress hardening<\/h2>\n<p>Open <strong>Settings &gt; Cisilino Site Defense Network<\/strong> (point 1 in the image). Then click the <strong>Hardening \/ IDS<\/strong> tab (point 2). In the tab you&#8217;ll find three sections, in this order:<\/p>\n<ul>\n<li>point 3: under the heading \u201cHardening \/ access control (IDS)\u201d, the row \u201c.htaccess rules\u201d.<\/li>\n<li>point 4: \u201cWordPress\u201d.<\/li>\n<li>point 5: \u201cCustom paths to block\u201d.<\/li>\n<\/ul>\n<p>At the top the tab says: \u201cOptional rules applied at server level (.htaccess) or in WordPress. All off by default: only turn them on if you know they won&#8217;t conflict with the site&#8217;s themes or plugins.\u201d At the bottom there&#8217;s a single button: \u201cSave hardening rules\u201d.<\/p>\n<h2>What it&#8217;s for<\/h2>\n<p>The rules reduce the attack surface. Three switches write to the <code>.htaccess<\/code> file, as does the custom paths field. Two switches are WordPress filters. This isn&#8217;t a firewall and it doesn&#8217;t analyse requests: here \u201cIDS\u201d means rules for accessing files and folders.<\/p>\n<h2>The .htaccess rules (point 3)<\/h2>\n<h3>Block PHP execution in wp-content\/uploads<\/h3>\n<p>The full label is \u201cBlock PHP execution in wp-content\/uploads (protection against shells uploaded as an &#8220;image&#8221;)\u201d. The plugin replies with 403 to any request for a file with extension <code>php<\/code>, <code>php3<\/code>, <code>php4<\/code>, <code>php5<\/code>, <code>php7<\/code>, <code>php8<\/code>, <code>php9<\/code>, <code>phtml<\/code>, <code>phps<\/code>, <code>phar<\/code> or <code>pht<\/code> whose address contains <code>\/wp-content\/uploads\/<\/code>. Capital letters don&#8217;t matter.<\/p>\n<p>It only works with Apache 2.4 (it needs the mod_authz_core module: without it, the rule does nothing and doesn&#8217;t report that). On nginx the <code>.htaccess<\/code> file is ignored and no rule in this tab has any effect, aside from the WordPress filters. It covers the standard uploads folder, not a custom one. It can break plugins that genuinely serve PHP files from that folder. To know whether it works on your site, use the test in the <a href=\"https:\/\/www.cisilino.com\/en\/?p=980\">Test tab<\/a> chapter.<\/p>\n<h3>Disable directory listing for folders without an index<\/h3>\n<p>It writes a single line: <code>Options -Indexes<\/code>. Opening a folder with no index page will now show a 403 error instead of the file listing. If you use a folder as a public list of downloads, that listing disappears.<\/p>\n<h3>Block direct access to wp-config.php, .htaccess, readme.html, debug.log<\/h3>\n<p>The plugin writes a rule for each name and replies with 403. The check is on the file&#8217;s name, not its path. It therefore applies to any file with that name in any folder on the site, even inside other plugins. A plugin that publishes its own <code>readme.html<\/code> or <code>debug.log<\/code> will be blocked.<\/p>\n<h2>The WordPress rules (point 4)<\/h2>\n<p>These two WordPress hardening rules are PHP filters. They don&#8217;t touch <code>.htaccess<\/code>.<\/p>\n<h3>Disable XML-RPC<\/h3>\n<p>The label is \u201cDisable XML-RPC (brute force\/pingback, almost never needed on modern sites)\u201d. The <code>xmlrpc.php<\/code> file stays in place, but WordPress refuses the XML-RPC methods that require login. <strong>Warning:<\/strong> this stops the WordPress mobile app, part of Jetpack&#8217;s functions, and publishing from external clients. The <code>pingback.ping<\/code> method doesn&#8217;t require login, and the filter doesn&#8217;t stop it: don&#8217;t rely on this rule to close down pingbacks. Trackbacks don&#8217;t use XML-RPC and aren&#8217;t affected. The plugin&#8217;s connection to the panel doesn&#8217;t use XML-RPC either, so it isn&#8217;t affected.<\/p>\n<h3>Block user enumeration via ?author=N<\/h3>\n<p>If the request contains the <code>author<\/code> parameter with a value (other than empty or <code>0<\/code>), the public site shows \u201cNot found.\u201d with a 404 response. <strong>Warning:<\/strong> this rule doesn&#8217;t protect the REST API. The user list at <code>\/wp-json\/wp\/v2\/users<\/code> stays reachable. Some themes and plugins use <code>?author=<\/code> to filter archives, and these will be blocked.<\/p>\n<h2>Custom paths to block (point 5)<\/h2>\n<p>This text field is for anyone who wants to close a specific folder, for example <code>\/wp-content\/uploads\/old-backup\/<\/code>. Write one path per line. Empty lines are ignored.<\/p>\n<p>Each line is <strong>literal text<\/strong>. Capital letters matter, and the part after the <code>?<\/code> in the address isn&#8217;t compared. The help text under the field talks about \u201cpatterns\u201d, but none exist here. There are no wildcards: <code>*<\/code>, <code>^<\/code> and <code>$<\/code> count as plain characters. The plugin blocks with 403 any address that <strong>contains<\/strong> that string, anywhere within it. That&#8217;s why the path <code>\/wp-content\/uploads\/old-backup\/<\/code> also blocks <code>\/blog\/wp-content\/uploads\/old-backup\/x<\/code>.<\/p>\n<p>This field has no switch. The rule is active as soon as the field isn&#8217;t empty and you save.<\/p>\n<p><strong>Warning:<\/strong> if you write <code>\/<\/code> or <code>wp<\/code> you block the whole site, admin area included. To get back you would need to fix <code>.htaccess<\/code> via FTP. Even a string such as <code>\/uploads\/<\/code> blocks every image. Avoid the <code>%<\/code> character in paths.<\/p>\n<h2>Default values<\/h2>\n<p>Five switches off and an empty field. The settings live in the <code>csdn_hardening<\/code> option.<\/p>\n<h2>How to use it<\/h2>\n<p>Take it slowly: WordPress hardening is done one rule at a time.<\/p>\n<ol>\n<li>Make a copy of <code>.htaccess<\/code> before you start.<\/li>\n<li>Tick a single rule.<\/li>\n<li>Click \u201cSave hardening rules\u201d.<\/li>\n<li>Check that the site opens and that the admin panel works.<\/li>\n<li>Move on to the next rule.<\/li>\n<\/ol>\n<p>After saving you are taken back to the General tab, not the one you saved. At the top you&#8217;ll find the notice. On success it says \u201cHardening rules saved and applied.\u201d. On failure it says \u201cSettings saved, but writing to .htaccess failed (permissions?). The rules are not active.\u201d. With the failure, the two PHP filters stay active regardless.<\/p>\n<p><strong>Warning:<\/strong> the plugin makes no backup of <code>.htaccess<\/code> whatsoever. It doesn&#8217;t even check the syntax before writing. A rule that your server doesn&#8217;t support can cause a 500 error across the whole site. On a multisite network the file belongs to the network: the error hits every site.<\/p>\n<h2>What happens behind the scenes<\/h2>\n<p>The plugin writes between two markers: <code># BEGIN Cisilino Site Defense Network - Hardening<\/code> and the matching <code># END<\/code>. The rest of the file is untouched. A second, separate block holds the blocked IPs. If you deactivate the plugin, both blocks are emptied. If you turn everything off and save, the hardening block stays empty.<\/p>\n<h2>If something goes wrong<\/h2>\n<p>If the site shows a 500 error after WordPress hardening, open <code>.htaccess<\/code> via FTP. Delete the lines between the two hardening markers. Then try again with fewer rules. If nothing is written to the file, check the permissions on <code>.htaccess<\/code>.<\/p>\n<p>For a wider view of good practice, read the official guide to <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/security\/hardening\/\" target=\"_blank\" rel=\"noopener\">hardening WordPress<\/a>: it explains other measures that sit outside the plugin.<\/p>\n<p>Previous chapter: <a href=\"https:\/\/www.cisilino.com\/en\/?p=977\">Blocked IPs tab: reading the blacklist<\/a>. Next chapter: <a href=\"https:\/\/www.cisilino.com\/en\/?p=979\">Upload monitoring and the integrity check<\/a>. For the full list of chapters go back to the <a href=\"https:\/\/www.cisilino.com\/en\/?p=972\">introduction to the manual<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Hardening \/ IDS tab of the plugin CSDN, rule by rule: what it blocks, what it can break, and why custom paths must be written with care.<\/p>\n","protected":false},"author":1,"featured_media":999,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpai_generated_summary":"","footnotes":""},"categories":[416],"tags":[144,164,434,288],"class_list":["post-1049","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csdn-manual","tag-htaccess-en","tag-cisilino-site-defense-network-en","tag-csdn-manual","tag-xml-rpc-en"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"matteocisilino\"\/>\n\t<meta name=\"google-site-verification\" content=\"_A-1f0dO30IDVHfP9muflI8kHQs-H4YOi8WLUkYzuLE\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Matteo Cisilino - Guide su WordPress, server e sicurezza\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"WordPress hardening: the plugin&#039;s rules for .htaccess\" \/>\n\t\t<meta property=\"og:description\" content=\"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-30T16:05:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-30T16:06:19+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"WordPress hardening: the plugin&#039;s rules for .htaccess\" \/>\n\t\t<meta name=\"twitter:description\" content=\"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#blogposting\",\"name\":\"WordPress hardening: the plugin's rules for .htaccess\",\"headline\":\"Hardening \\\/ IDS: the .htaccess rules\",\"author\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/manuale-csdn-hardening-ids.webp\",\"width\":1200,\"height\":630,\"caption\":\"Schema di WordPress con la scheda Hardening \\\/ IDS del plugin CSDN: hardening wordpress\"},\"datePublished\":\"2026-10-30T17:05:39+01:00\",\"dateModified\":\"2026-10-30T17:06:19+01:00\",\"inLanguage\":\"en-GB\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#webpage\"},\"articleSection\":\"CSDN manual, .htaccess, Cisilino Site Defense Network, CSDN manual, XML-RPC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/csdn-manual\\\/#listItem\",\"name\":\"CSDN manual\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/csdn-manual\\\/#listItem\",\"position\":2,\"name\":\"CSDN manual\",\"item\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/csdn-manual\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#listItem\",\"name\":\"Hardening \\\/ IDS: the .htaccess rules\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#listItem\",\"position\":3,\"name\":\"Hardening \\\/ IDS: the .htaccess rules\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/category\\\/csdn-manual\\\/#listItem\",\"name\":\"CSDN manual\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\",\"name\":\"Matteo Cisilino\",\"description\":\"Guide su WordPress, server e sicurezza\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/logo-cisilino-512.png\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#organizationLogo\",\"width\":512,\"height\":512,\"caption\":\"Logo: un cerchio a sinistra che si divide in cerchi pi\\u00f9 piccoli\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/\",\"name\":\"matteocisilino\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/639872265f0661e8aee8924ba9d756b00ea816f8286fab99a5116c729d49618f?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"matteocisilino\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#webpage\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/\",\"name\":\"WordPress hardening: the plugin's rules for .htaccess\",\"description\":\"WordPress hardening with the Hardening \\\/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/author\\\/matteocisilino\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/manuale-csdn-hardening-ids.webp\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#mainImage\",\"width\":1200,\"height\":630,\"caption\":\"Schema di WordPress con la scheda Hardening \\\/ IDS del plugin CSDN: hardening wordpress\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/2026\\\/10\\\/30\\\/hardening-ids-htaccess-rules\\\/#mainImage\"},\"datePublished\":\"2026-10-30T17:05:39+01:00\",\"dateModified\":\"2026-10-30T17:06:19+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/\",\"name\":\"Matteo Cisilino\",\"description\":\"Guide su WordPress, server e sicurezza\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cisilino.com\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"WordPress hardening: the plugin's rules for .htaccess","description":"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.","canonical_url":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"_A-1f0dO30IDVHfP9muflI8kHQs-H4YOi8WLUkYzuLE","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#blogposting","name":"WordPress hardening: the plugin's rules for .htaccess","headline":"Hardening \/ IDS: the .htaccess rules","author":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"publisher":{"@id":"https:\/\/www.cisilino.com\/en\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp","width":1200,"height":630,"caption":"Schema di WordPress con la scheda Hardening \/ IDS del plugin CSDN: hardening wordpress"},"datePublished":"2026-10-30T17:05:39+01:00","dateModified":"2026-10-30T17:06:19+01:00","inLanguage":"en-GB","mainEntityOfPage":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#webpage"},"isPartOf":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#webpage"},"articleSection":"CSDN manual, .htaccess, Cisilino Site Defense Network, CSDN manual, XML-RPC"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/#listItem","position":1,"name":"Home","item":"https:\/\/www.cisilino.com\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/#listItem","name":"CSDN manual"}},{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/#listItem","position":2,"name":"CSDN manual","item":"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#listItem","name":"Hardening \/ IDS: the .htaccess rules"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#listItem","position":3,"name":"Hardening \/ IDS: the .htaccess rules","previousItem":{"@type":"ListItem","@id":"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/#listItem","name":"CSDN manual"}}]},{"@type":"Organization","@id":"https:\/\/www.cisilino.com\/en\/#organization","name":"Matteo Cisilino","description":"Guide su WordPress, server e sicurezza","url":"https:\/\/www.cisilino.com\/en\/","logo":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/logo-cisilino-512.png","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#organizationLogo","width":512,"height":512,"caption":"Logo: un cerchio a sinistra che si divide in cerchi pi\u00f9 piccoli"},"image":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author","url":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/","name":"matteocisilino","image":{"@type":"ImageObject","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/639872265f0661e8aee8924ba9d756b00ea816f8286fab99a5116c729d49618f?s=96&d=mm&r=g","width":96,"height":96,"caption":"matteocisilino"}},{"@type":"WebPage","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#webpage","url":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/","name":"WordPress hardening: the plugin's rules for .htaccess","description":"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/www.cisilino.com\/en\/#website"},"breadcrumb":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#breadcrumblist"},"author":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"creator":{"@id":"https:\/\/www.cisilino.com\/en\/author\/matteocisilino\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp","@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#mainImage","width":1200,"height":630,"caption":"Schema di WordPress con la scheda Hardening \/ IDS del plugin CSDN: hardening wordpress"},"primaryImageOfPage":{"@id":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/#mainImage"},"datePublished":"2026-10-30T17:05:39+01:00","dateModified":"2026-10-30T17:06:19+01:00"},{"@type":"WebSite","@id":"https:\/\/www.cisilino.com\/en\/#website","url":"https:\/\/www.cisilino.com\/en\/","name":"Matteo Cisilino","description":"Guide su WordPress, server e sicurezza","inLanguage":"en-GB","publisher":{"@id":"https:\/\/www.cisilino.com\/en\/#organization"}}]},"og:locale":"en_GB","og:site_name":"Matteo Cisilino - Guide su WordPress, server e sicurezza","og:type":"article","og:title":"WordPress hardening: the plugin's rules for .htaccess","og:description":"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.","og:url":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/","og:image":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp","og:image:secure_url":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp","og:image:width":1200,"og:image:height":630,"article:published_time":"2026-10-30T16:05:39+00:00","article:modified_time":"2026-10-30T16:06:19+00:00","twitter:card":"summary_large_image","twitter:title":"WordPress hardening: the plugin's rules for .htaccess","twitter:description":"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.","twitter:image":"https:\/\/www.cisilino.com\/wp-content\/uploads\/2026\/10\/manuale-csdn-hardening-ids.webp"},"aioseo_meta_data":{"post_id":"1049","title":"WordPress hardening: the plugin's rules for .htaccess","description":"WordPress hardening with the Hardening \/ IDS tab of CSDN: five switches, custom paths, risks for .htaccess and how to roll it back.","keywords":null,"keyphrases":{"focus":{"keyphrase":"wordpress hardening"}},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-10-30 07:39:17","updated":"2026-10-30 07:42:21","focus_keyword":"wordpress hardening","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cisilino.com\/en\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/\" title=\"CSDN manual\">CSDN manual<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHardening \/ IDS: the .htaccess rules\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.cisilino.com\/en\/"},{"label":"CSDN manual","link":"https:\/\/www.cisilino.com\/en\/category\/csdn-manual\/"},{"label":"Hardening \/ IDS: the .htaccess rules","link":"https:\/\/www.cisilino.com\/en\/2026\/10\/30\/hardening-ids-htaccess-rules\/"}],"_links":{"self":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/comments?post=1049"}],"version-history":[{"count":2,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1049\/revisions"}],"predecessor-version":[{"id":1324,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/posts\/1049\/revisions\/1324"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/media\/999"}],"wp:attachment":[{"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/media?parent=1049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/categories?post=1049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cisilino.com\/en\/wp-json\/wp\/v2\/tags?post=1049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}